单个 django 查询集获取 n 个相邻项目

2024-03-18

我正在制作一个“无限”/连续滚动列表(如 Twitter),并希望能够导航到特定项目。找到该项目很简单,但我需要在它之前和之后获取一些项目。

我使用与此处建议的答案类似的方法:获取 Django 中的下一个和上一个对象 https://stackoverflow.com/questions/6021694/getting-next-and-previous-objects-in-django

before = list(reversed(models.MyModel.objects.filter(pk__lt=pk).order_by('-pk')[:10]))
after = list(models.MyModel.objects.filter(pk__gte=pk).order_by('pk')[:11])
objects = before + after

有没有办法将这些合并到一个查询中?

我不能简单地将两者结合起来|运算符,例如before | after并且没有list/reverse,因为切片必须先出现。我也不能做类似的事情pk__lt=pk+10, pk__gt=pk-10因为对象可能会被删除。

对于更复杂的示例,如果我按主键以外的其他内容进行排序,我需要首先使用另一个查询来获取对象:

object = get_object_or_404(models.MyModel, pk=pk)
before = list(reversed(models.MyModel.objects.filter(pk__lt=object.other_key).order_by('-other_key')[:10]))
after = list(models.MyModel.objects.filter(pk__gte=object.other_key).order_by('other_key')[:11])
objects = before + after

同样,是否可以通过单个查询完成相同的事情?


我曾经遇到过类似的问题并解决了这个问题此处描述 https://groups.google.com/forum/#!topic/django-users/UmjaAGBNFsU:定义一个描述对象顺序的 SQL 变量,然后按其排序。然而,这是简单的 SQL。我不知道是否有办法使用 Django ORM。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单个 django 查询集获取 n 个相邻项目 的相关文章

  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 如何直接从 Android 应用程序发送电子邮件而不显示设备的默认电子邮件格式?

    我正在构建一个从 Android 应用程序发送电子邮件的表单 我使用 Intents 发送电子邮件 即 Intent sendIntent sendIntent new Intent Intent ACTION SEND 我的要求是我希望立
  • SSMS 结果作为可点击的链接

    我对 SQL 相当陌生 我环顾四周 看看是否可以找到一种方法来做到这一点 如果可能的话 这是我的 SQL 查询文本 SELECT CONCAT https domain 8080 analyzer sipid SIPCallId cmd G
  • 有没有办法让 PHP 详细加载类,指示 .php 文件的完整路径?

    我想让 PHP 在加载类时将调试信息 包括 php 文件的完整路径 打印到标准错误 例如 从 path to my class MyClass php 加载 MyClass 有没有办法在不事先知道源文件在哪里的情况下做到这一点 编辑以澄清我
  • after_commit 回调被调用多次

    更新 对 update attributes 的调用是否会获取它自己的事务 我看过this https stackoverflow com questions 7603448 rails after save callback being
  • 如何设置bluepy无需sudo即可扫描的环境?

    我编写了一些 Python 脚本 用于扫描设备 如果它们与 名称 匹配 我就会连接到它们并做一些蓝色的事情 该脚本是建立在bluepy module 我认为我不喜欢的是 我需要运行设备扫描sudo like sudo python3 get
  • 如何使用 mongodb 聚合框架获取运行总计?

    我对 MongoDB 相当陌生 正在使用聚合框架 文档中的示例之一显示以下内容 它返回每月新用户加入的总数并列出加入的月份 db users aggregate project month joined month joined group
  • .htaccess 的公共目录

    我在index php中有一个调度程序函数 因此URL如下 博客 显示转到 index php blog show
  • 获取我们所有私人仓库的列表

    我想获取我们组织 github 中所有私有存储库的列表 我试过 curl u user pw X GET https api github com orgs xxx repos per page 100 gt gt list txt 我发现
  • 如何在 jQuery 中处理按钮点击事件?

    我需要一个按钮并在 jQuery 中处理它的事件 我正在编写这段代码 但它不起作用 我错过了什么 div class demo br br br div
  • java 中类型擦除如何工作?

    我正在浏览 TypeErasure 主题http download oracle com javase tutorial java generics erasure html http download oracle com javase
  • 打包具有依赖项的 Android AAR

    我想将我的库打包为 aar 该库有几个依赖项 通用图像加载器 ORMLite guava 它还依赖于我编写的另一个库 称为 库 B 我有两个问题 请问每个将使用我的库的人都需要根据库的依赖项添加依赖项 通用图像加载器 ORMLite gua
  • 检测字符串中的垃圾字符

    我想允许用户输入字符 数字和特殊字符 但不允许输入 ascii 值大于 127 的垃圾字符 例如 等 我有这样的功能 for int i 0 i lt value Length i value is input string if int
  • 无法使用散列密码登录 Android 应用程序

    我一直在遵循教程来为基于 Android 的应用程序创建登录信息 但是在加密密码后 我无法对用户进行身份验证 我几天来一直在寻找问题的解决方案 但仍然没有成功 我希望这是我错过的一些简单的事情 评论中也有很多人在视频 6 播放列表中的最后一
  • App Engine 数据存储上的查询等效项之间?

    我有一个包含 IP 地址范围的模型 类似于 class Country db Model begin ipnum db IntegerProperty end ipnum db IntegerProperty 在 SQL 数据库上 我将能够
  • 在python中的CSV文件的2列中写入2个列表

    我有 2 个清单 a 1 2 3 b 4 5 6 我想将它们写在 CSV 文件中的两列中 因此当我打开 Excel 工作表时 我会看到如下内容 col1 col2 1 4 2 5 3 6 我怎样才能做到这一点 I used zip a b
  • 如何在 MPMoviePlayerController 中打开 Youtube 视频并播放

    我以前用过这个方法1次 但现在我无法从这个在 MPMoviePlayerController 中直接播放 YouTube 视频的 URL 获取视频 URL void viewDidLoad player MPMoviePlayerContr
  • AttributeError:模块 Pip 没有属性“main”

    我正在尝试为一个名为 Zulip 的开源项目构建 python api 但我一直遇到同样的问题 如下面的屏幕截图所示 我正在运行 python3 我的 pip 版本是 10 0 0 有问题的文件是setup py混乱的代码是当pip mai
  • 如何在 CMake 中设置构建时间的环境变量? [复制]

    这个问题在这里已经有答案了 我有一个 python 脚本可以生成 cpp在后续编译中使用的源 该脚本使用一些第三方模块 我正在尝试设置PYTHONPATH到模块位置 我尝试做set ENV PYTHONPATH path to module
  • spring @transactional 线程安全吗?

    I used Transactional在我的一个类上并在多线程环境中使用它 据我了解 它将在线程本地环境中执行并且是线程安全的 现在我的用例是从帐户中提取金额 如果读取的账户金额是脏的 会不会出现透支的情况 我不确定像现在这样是否安全 或
  • 单个 django 查询集获取 n 个相邻项目

    我正在制作一个 无限 连续滚动列表 如 Twitter 并希望能够导航到特定项目 找到该项目很简单 但我需要在它之前和之后获取一些项目 我使用与此处建议的答案类似的方法 获取 Django 中的下一个和上一个对象 https stackov