我正在尝试优化我非常简单的分页系统。我正在使用
从我的模型中获取特定内容myModel.objects.get(slug='my slug bla bla bla')
我希望能够从我的id获得相同的请求,下一个和前一个Pk,以便显示基于Pk或发布的next / prec按钮。我看了一下分页,但没有找到如何解决我的prec = slug-pk - 1,slug,next = slug-pk + 1。 目前我已经添加到我的模型中的字段以获取下一个和prec绝对URL,但它非常难看并且产生了许多无用的SQL查询。您可以在此处查看输出:http://diasporamas.com/le-barbier-de-paris/watch
关于如何改善我的提取的任何想法?
谢谢!
答案 0 :(得分:1)
我不相信在一个查询中可以这样做。
我能想到的最有效的方法是:
current = myModel.objects.get(slug='my slug bla bla bla')
next = None
next_pk = current.pk + 1
previous = None
prev_pk = current.pk - 1
for mod in myModel.objects.filter(pk__in=(next_pk, prev_pk)):
if mod.pk == next_pk:
next = mod
else:
prev = mod