In Django, I have two models:
class Product(models.Model): name = models.CharField(max_length = 50) categories = models.ManyToManyField(Category) class ProductRank(models.Model): product = models.ForeignKey(Product) rank = models.IntegerField(default = 0)
I put the rank into a separate table because every view of a page will cause the rank to change and I was worried that all these writes would make my other (mostly read) queries slow down.
I gather a list of
Products from a simple query:
cat = Category.objects.get(pk = 1) products = Product.objects.filter(categories = cat)
I would now like to get all the ranks for these products. I would prefer to do it all in one go (using a SQL join) and was wondering how to express that using Django's query mechanism.
What is the right way to do this in Django?