我有一个论坛,人们可以在那里提问和回答问题。 因此,可以回答的人也可以在帖子中添加喜欢的对象。我决定订购喜欢的物品。
当然,我有一个分页
我的views.py
def all_questions_max_likes(request):
all_subjects = Subject.objects.all()
posts = Post.objects.all().order_by('-likes')
paginator = Paginator(posts, 4 )
page = request.GET.get('page')
posts_ = paginator.get_page(page)
args = {
'all_subjects' : all_subjects,
'posts' : posts,
}
return render(request, 'ask/questions.html', args)
这是它的样子
为什么Django会用3个赞来取一个对象3次?
我该如何解决?
答案 0 :(得分:2)
您需要使用annotation:
from django.db.models import Count
posts = Post.objects.all().annotate(num_likes=Count('likes')).order_by('-num_likes')