ary*_*yan 6 python django django-queryset
我有一个模特:
class Category(models.Model):
questions = models.ManyToManyField('Question', related_name="cat_question", blank=True)
cat_name = models.CharField(max_length=50)
cat_description = models.CharField(max_length=255)
def __unicode__(self):
return self.cat_name
Run Code Online (Sandbox Code Playgroud)
在我看来,我有:
top_categories = Category.objects.all()[:7].
Run Code Online (Sandbox Code Playgroud)
我将它作为模板中的上下文传递.我想根据问题的数量对顶级类别进行排序,如果一个类别有大多数问题,那么它应该在顶部,如果B有大多数问题那么B.然后第二大等等......
喜欢 top_categories = Category.objects.all().order_by(Count(question)
有帮助吗?
cat*_*ran 17
Category
使用问题数注释对象,然后按此编号按降序排序:
from django.db.models import Count
top_categories = Category.objects.annotate(q_count=Count('questions')) \
.order_by('-q_count')[:7]
Run Code Online (Sandbox Code Playgroud)
你可以查看doc order-by中的示例,更多关于aggreagate 作弊表的例子
归档时间: |
|
查看次数: |
1550 次 |
最近记录: |