从查询集中删除结果

发布于 2024-09-04 03:43:30 字数 367 浏览 4 评论 0原文

有没有一种简单的方法可以在不影响数据库的情况下丢弃/删除查询集中的最后一个结果?

我正在尝试在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷清清 2024-09-11 03:43:30

您可以简单地对结果进行切片:)

<块引用>
<块引用>

对象 = your_pre_sliced_queryset[:pagesize]


You can simply slice the results :)

objects = your_pre_sliced_queryset[:pagesize]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文