Django 如何基于外键对queryset进行排序,并且没有重复项

Django 如何基于外键对queryset进行排序,并且没有重复项,django,django-queryset,Django,Django Queryset,我想在我的网站上展示5本最近被评论过的书。我正试着根据书被评论的时间来订购这些书。问题是,如果一本书最近被评论了不止一次,它就会出现不止一次。如何从该查询中获得5本独特的书籍?(我尝试将.distinct()添加到查询中,但没有成功!) review=Book.objects.order\u by('-review\u date\u posted')[:5]您可以使用.distinct('review')您可以按review中最大的发布日期进行订购,因此: from django.db.mode

我想在我的网站上展示5本最近被评论过的书。我正试着根据书被评论的时间来订购这些书。问题是,如果一本书最近被评论了不止一次,它就会出现不止一次。如何从该查询中获得5本独特的书籍?(我尝试将.distinct()添加到查询中,但没有成功!)


review=Book.objects.order\u by('-review\u date\u posted')[:5]
您可以使用
.distinct('review')
您可以按
review
中最大的
发布日期进行订购,因此:

from django.db.models import Max

Book.objects.annotate(
    last_review=Max('review__date_posted')
).order_by('-last_review')[:5]
从django.db.models导入最大值
书、物体、注解(
最后一次审核=最大值(“审核日期发布”)

).order_by('-last_review')[:5]
您的图书模型和书评模型是什么样子的?