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 模型过滤器不起作用的主要内容,如果未能解决你的问题,请参考以下文章