如何在同一查询中使用 __year 和 __in ?

2024-01-18

这就是我正在尝试做的事情。
例如,我有一个包含年份的列表years = [2002, 2003, 2004]
我有一个SomethingModel with a DateField

我想做一个查询,该查询将返回属于该年的所有对象:

我知道这个作品:

 SomethingModel.objects.filter(date__year=2003) 
 SomethingModel.objects.filter(date__in=[list with dates])

所以我尝试过这个:

SomethingModel.objects.filter(date__year__in=years)

但这给我返回了这个错误:

FieldError: Join on field 'date' not permitted. Did you misspell 'year' for the lookup type?

有谁知道如何做到这一点?以直接的方式..

谢谢!


你不能,如果你看查询集文档 https://docs.djangoproject.com/en/dev/ref/models/querysets

Entry.objects.filter(pub_date__year=2005)

变为 SQL 等效项:

SELECT ... WHERE pub_date BETWEEN '2005-01-01' AND '2005-12-31 23:59:59.999999';

所以你不能在概念上混合 __in 和 __date 。无论如何,您不能混合后缀,因为第一个“后缀”将被解释为不存在的关系。

您需要使用小于过滤器和大于过滤器,或者,如果列表不连续,则需要使用额外的 where 字段,例如:

SomethingModel.objects.extra(where=["YEAR(date) IN (" + ",".join([str(x) for x in [2003, 2008, 2010]]) + ")"])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在同一查询中使用 __year 和 __in ? 的相关文章

  • TypeError at / 'str' 对象不是 django 模板中的映射

    我正在尝试在标签内设置链接 当我执行代码中所示的过程时 它给出了错误 str 对象的类型错误不是映射 它曾经工作正常 但后来决定不这样做 模板代码 a class item href 网址代码 urlpatterns path admin
  • 在 Heroku 上安装 GeoDjango

    我正在尝试构建一个使用 GeoDjango 的网络应用程序 该应用程序将托管在 Heroku 上 但我在其中遇到了问题 我在用this https github com dulaccc heroku buildpack geodjango构
  • 如何使用 Mercurial 将文件夹与现有 Heroku 应用程序链接

    我在 Bitbucket 上有一个现有的 Django 应用程序 我能够部署到 Herokuhg git https stackoverflow com q 9591380 343834 每当我想在应用程序文件夹中运行一些 heroku 命
  • 在 python3.6 上 pip 安装 Django

    如果我跑pip install Django I get 已满足的要求 Django in usr local lib python2 7 dist packages 我想改用 python3 6 它已经安装在 usr bin python
  • django.db.utils.OperationalError:Shell 命令 forloop 中外键不匹配

    我正在研究以下两个 Django 模型 以用户作为外键的组织模型和以组织作为外键的类别列表 以下是Models Create your models here from django contrib auth models import U
  • Django - 使用多种表单

    我想做的是在一个页面中管理多个表单 我知道有表单集 并且我知道表单管理是如何工作的 但是我的想法存在一些问题 只是为了帮助您想象我的问题是什么 我将使用 django 示例模型 from django db import models cl
  • 创建自定义用户注册表单 Django

    我正在尝试在 Django 中创建自定义用户注册表单 但收到以下错误 我页面上的所有内容都显示正确 但我收到错误 Error Exception Type KeyError Exception Value First name 我的表单 p
  • Django:Haystack 或 ORM

    在一个项目中 我实现了 Haystack 但现在我想知道使用 Haystack 相对于 ORM 有何优缺点 对于我的项目 我需要按书名和 isbn 查找书籍 我想如果你必须进行全文搜索 Haystack 会更有用 或者我是否遗漏了一些东西
  • 模块“django.db.backends.utils”没有属性“typecast_decimal”

    当我跑步时 python manage py inspectdb database sybase database 它以错误消息结束 Database register converter Database DT DECIMAL util
  • Ajax 调用后使用 Django 模板呈现 JSON 对象

    我一直在尝试了解什么是最佳方法Ajax http en wikipedia org wiki Ajax 28programming 29 in Django http en wikipedia org wiki Django 28web f
  • 使用 Django 发出 HTTP 请求并反序列化输出

    因此 我对整个 Web 开发几乎完全陌生 但已经投入到一个使用 Django 从 Web 服务中提取和解析数据的副项目中 并且即使在查看 Django 时 我也很难准确地理解事情是如何工作的 文档 在 Django 中 我已经完成了所有设置
  • 运行连接到 Django 测试数据库的 Celery Worker

    背景 我正在开发一个项目 该项目使用 Celery 来安排将在未来某个时间运行的任务 这些任务推动最终状态机的状态向前发展 这是一个例子 未来的提醒计划在 2 天内发送给用户 当该计划任务运行时 会发送一封电子邮件 并且 FSM 会前进到下
  • 如何在 Django 上发送重置密码电子邮件?

    在使用 Django 框架创建我的第一个网站的过程中 我遇到了一个小问题 目前还没有找到解决方案 因此 当用户想要重置他或她的密码时 我想向他 她发送一封重置邮件 到目前为止 我有这个 urls py from django contrib
  • 放弃处理 无法处理视频 - Youtube API?

    我正在使用 youtube data v3 api 通过我的网站上传 mp4 视频 http post 请求如下所示 access token request session access token url https www googl
  • Django外键:获取相关模型?

    是否可以通过外键字段本身获取外键的相关模型 例如 如果我有 3 个模型 class ModelA models Model field1 models CharField max length 10 class ModelB models
  • 如何按类的特定属性排序?

    我有一个具有跟踪价格属性的模型 现在 我有该型号的列表 无论如何 是否可以重新排列列表以按该特定属性进行排序 python 是否足够聪明 知道该属性是一个可以排序的值 我没有使用数据库跟踪特定模型的实例 我正在做的事情不需要它 所以我不能只
  • Django - 删除图像编辑表单中的“当前”并将其替换为实际图像

    编辑具有图像字段的对象时 系统会向您显示当前图像路径和标准文件上传字段 我想要做的是能够用实际图像替换显示的路径 当前 pathtoimage jpg 我该怎么做 提前致谢 如果您正在谈论 Django 管理中的表单 您可以覆盖 Admin
  • Django-尝试使用 send_mail() 在 python shell 中发送电子邮件,但无法工作

    我正在尝试在 Django 项目中发送帐户激活链接 但它无法工作 所以我在 shell 中尝试了非常基本的 send mail 函数 看看它是否正在发送 在settin py中 AUTHENTICATION BACKENDS django
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐