Django Paginator为每个项目附加额外的数据

时间:2019-12-29 12:28:48

标签: django paginator

如何更改我的代码,以便向分页器返回的每条帖子中添加liked项目。这是我的代码,但是它返回一个列表,我无法检查它是否在模板中.has_next,因此我的无限滚动不起作用。

try:
    posts_given = paginator.page(page)
except PageNotAnInteger:
    posts_given = paginator.page(1)
except EmptyPage:
    posts_given = paginator.page(paginator.num_pages)

results = []
for post in posts_given.object_list:
    liked = like_post.objects.filter(user=request.user, post=post)
    results.append((post, liked))
posts_given = results

1 个答案:

答案 0 :(得分:0)

为什么您需要以这种方式添加喜欢的人?它将产生n + 1个查询问题。学习模型关系。然后,您可以使用prefetch_relatedliked加载到帖子结果中。

参考:https://docs.djangoproject.com/en/3.0/ref/models/querysets/#prefetch-related