1

TaskとTaskCommentの2つのモデルがあります。

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 に答える