从查询集中删除结果
有没有一种简单的方法可以在不影响数据库的情况下丢弃/删除查询集中的最后一个结果?
我正在尝试在 Django 中对结果进行分页,但不知道给定查询的对象总数。
我计划使用下一个/上一个或旧的/新的链接,所以我只需要知道这是第一页和/或最后一页。
首先是易于检查。要检查最后一页,我可以将结果数与页面大小进行比较或进行第二次查询。当最后一组结果数等于页面大小时,第一种方法无法检测到最后一页(即 100 条记录分为 10 页,最后一页恰好包含 10 个结果),我想避免进行第二次查询。
我当前的想法是我应该从数据库获取 pagesize + 1 结果。如果查询集长度等于 11,我知道这不是最后一页,并且我想在将查询集传递给模板之前丢弃查询集中的最后一个结果。
Is there a simple way to discard/remove the last result in a queryset without affecting the db?
I am trying to paginate results in Django, but don't know the total number of objects for a given query.
I was planning on using next/previous or older/newer links, so I only need to know if this is the first and/or last page.
First is easy to check. To check for the last page I can compare the number of results with the pagesize or make a second query. The first method fails to detect the last page when the number of results in the last set equals the pagesize (ie 100 records get broken into 10 pages with the last page containing exactly 10 results) and I would like to avoid making a second query.
My current thought is that I should fetch pagesize + 1 results from the db. If the queryset length equals 11, I know this is not the last page and I want to discard the last result in the queryset before passing the queryset to the template.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以简单地对结果进行切片:)
You can simply slice the results :)