1

我有两个模型,Task 和 TaskComment:

class Task(models.Model):
    title = models.CharField(max_length = 200)
    creationDate = models.DateTimeField('date created')
    lastUpdateDate = models.DateTimeField('date updated')
    description = models.CharField(max_length = 5000)

class TaskComment(models.Model):
    task = models.ForeignKey(Task, related_name='comments')
    message = models.CharField(max_length = 5000)
    creationDate = models.DateTimeField('date created')

想象一个列出所有任务的页面。我想做的事情是按链接到该任务的评论数量对任务进行排序。我已经尝试了几个这样的:Task.objects.all().order_by("comments__count") 但它不起作用。

你能帮助我吗 ?

4

1 回答 1

2

你需要注解

from django.db.models import Count

Task.objects.all().annotate(num_comments=Count('taskcomment')).order_by('-num_comments')
于 2012-04-22T17:59:12.553 回答