如果数据库有自增ID,要获取上一条和下一条的记录就很简单了:
Obj = models.Article.objects.get(id=id)
prev = models.Article.objects.get(id = id-1)
next = models.Article.objects.get(id = id+1)
但是我当时 建数据表的时候,忘添加自增ID了,只好另寻他法。
目前找到一个非常妙的方法,分享给大家:
先安装django-next-prev包:
pip install django-next-prev
然后引入:
from next_prev import next_in_order,prev_in_order
obj = models.Article.objects.get(...)
next = next_in_order(obj)
prev = prev_in_order(obj)
可以根据其他字段获取列表,然后拿到上一条和下一条数据:
objs = modes.Article.objects.filter(list=abcde)
obj = objs.get(...)
next = next_in_order(obj,qs=objs)
prev = prev_in_order(obj,qs=objs)
顺利获取上一条和下一条对象。