如何在Django中获取具有最大数量相关对象的对象

时间:2020-11-10 22:59:34

标签: django django-models django-orm

我有A型(邮政):

class Post(models.Model):
    title = models.CharField(max_length=30)

和模型B(例如):

class Like(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)

我该如何检索喜欢最多的Post对象?

1 个答案:

答案 0 :(得分:2)

您可以用喜欢的数目注释Post对象,然后在我们按喜欢的数目降序排列时获得.earliest() [Django-doc]

from django.db.models import Count

most_liked_post = Post.objects.annotate(
    num_likes=Count('like')
).earliest('-num_likes')