DateField 的 Django 模型过滤器不起作用

Posted

技术标签:

【中文标题】DateField 的 Django 模型过滤器不起作用【英文标题】:Django model filter by DateField not working 【发布时间】:2021-09-12 12:55:04 【问题描述】:

试图通过 DateField 过滤 Django 模型。但是过滤器不起作用。

Model.objects.filter(delivery_date=date)

其中delivery_date 的类型为DateField,日期的类型为

【问题讨论】:

你试过Model.objects.filter(delivery_date__date=date) 但过滤器不起作用”是什么意思?你有错误吗?您是否得到不正确/意外的结果?你这里不是很清楚...... 不,我没有收到错误,但会显示其他交货日期的型号 那么您需要向我们展示更多代码,您当前显示的内容不会重现您的问题。 1)展示你的模型(它的相关部分)。 2) 显示进行此查询的视图。 3) 显示显示这些结果的模板部分。请查看如何写minimal reproducible example。 【参考方案1】:

使用日期时间和特殊属性 date 与 gte 或 lte 取决于您要实现的目标:

Model.objects.filter(delivery_date__date__gte=datetime(2021, 06, 27))

或使用 DateField :

Model.objects.filter(delivery_date__date=datetime(2021, 06, 27))

【讨论】:

不能用 datefield 做吗? 当我将 __date 与日期字段一起使用时,我收到一条错误消息:“不支持为 DateField 查找‘日期’或不允许加入该字段。”

以上是关于DateField 的 Django 模型过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模型中加密 DateField?

Django 模型 DateField to_python

我的 django 模型 DateField 如何将 30 天添加到提供的值?

在 Django 查询集中动态定义过滤器参数

Django在多列值的“元组”上过滤查询集

Django rest框架DateField格式