如何在django中获取具有最多相关对象的对象

How to get object with largest number of related objects in django

我有模型 A(Post):

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

和模型 B(赞):

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

如何检索点赞次数最多的 Post 对象?

可以在Post对象上注解点赞数,然后我们按点赞数降序排列的时候得到.earliest() [Django-doc]

from django.db.models import <b>Count</b>

most_liked_post = Post.objects.annotate(
    <b>num_likes=Count('like')</b>
)<b>.earliest('-num_likes')</b>