首页 > 解决方案 > 如何在django中获取具有最多相关对象的对象

问题描述

我有模型 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 对象?

标签: djangodjango-modelsdjango-orm

解决方案


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

from django.db.models import Count

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

推荐阅读