django实用程序,在给定当前对象和queryset的情况下检索下一个或上一个对象。
django-next-prev的Python项目详细描述
目的
django next prev提供实用程序来获取下一个或上一个项 在有序的、过滤的查询集内。例如,可以显示 链接到文章详细信息页上的下一篇特色文章,或显示 按时间顺序排列所有已发布文章的下一个和上一个链接。
安装
从https://pypi.python.org/pypi/django-next-prev/下载源代码 运行python setup.py install,或:
> pip install django-next-prev
要求Django 1.8或更高。
快速启动
给定此模型。py:
fromdjango.dbimportmodelsclassCategory(models.Model):title=models.CharField(max_length=100)classPost(models.Model):title=models.CharField(max_length=100)category=models.ForeignKey(Category,on_delete=models.CASCADE)created=models.DateField()text=models.TextField()classMeta:ordering=('created','title')
您可以执行以下操作
fromnext_previmportnext_in_order,prev_in_orderfrom.modelsimportPost# default orderingfirst=Post.objects.first()second=next_in_order(first)prev_in_order(second)==first# Truelast=prev_in_order(first,loop=True)# custom orderingqs=Post.objects.all().order_by('-created')newest=qs.first()second_newest=next_in_order(newest,qs=qs)oldest=prev_in_order(newest,qs=qs,loop=True)