Django models 获取多对一关系的多对一计数,限制django中的查询集
假设我有3个模型:Django models 获取多对一关系的多对一计数,限制django中的查询集,django-models,prefetch,Django Models,Prefetch,假设我有3个模型: class Category(models.Model): name = models.CharField() class Product(models.Model): category = models.ForeignKey(Category, related_name='categories') name = models.CharField() class Feedback(models.Model): product = model
class Category(models.Model):
name = models.CharField()
class Product(models.Model):
category = models.ForeignKey(Category, related_name='categories')
name = models.CharField()
class Feedback(models.Model):
product = models.ForeignKey(Product, related_name='feedbacks')
content = models.CharField()
我如何才能获得每个类别的总反馈数,并获得它的3个首批产品?
我想做这样的事,但没用:
Category.objects.prefetch_related(
Prefetch('categories', queryset=Product.objects.all().annotate(
feedback_count=Count('feedbacks')
)[:3])
).annotate(
product_count=Count('products'),
total_feedback_count=Count('categories__feedback_count')
)
请帮帮我,谢谢^^