如何解决错误:在Django日期过滤中,BaseDatabaseOperations的子类可能需要datetime_extract_sql方法...
我正在使用Django 2.2.12。
在models.py中,我有一个名称为Webregister
的具有字段的模型
created_on = models.DateTimeField(null=True,blank=True)
以2020-09-04 22:17:00+00:00
为了过滤日期,我写了这个查询
Webregister.objects.filter(created_on__date=date.today())
,它返回以下错误,
NotImplementedError: subclasses of BaseDatabaseOperations may require a datetime_extract_sql() method
但是,如果我使用__year
并点击以下查询,就可以正常工作
Webregister.objects.filter(created_on__year="2020")
请让我知道是什么问题?
解决方法
您可以只对日期时间或日期对象使用普通过滤器,只要它们具有可比性即可:
class Model(models.Model):
created_on = models.DateTimeField(null=True,blank=True)
data = Model.objects.filter(created_on__exact=datetime.now())
您的错误可能是您的 DateTimeField()
(它是一个 datetime
对象)和 date.now()
(它是一个 date
对象)之间的比较
也可以使用lt
、gt
,但是两个数据需要有可比性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。