正在使用ISO-8601日期字符串与Django'中的日期字段进行比较;s ORM正式支持且可移植?
似乎有了Django的ORM,我可以在查询模型的正在使用ISO-8601日期字符串与Django'中的日期字段进行比较;s ORM正式支持且可移植?,django,date,django-models,orm,Django,Date,Django Models,Orm,似乎有了Django的ORM,我可以在查询模型的日期字段时始终使用ISO-8601日期字符串,而不是datetime.date。例如,如果我有如下模型: from django.db import models class Sitting(models.Model): start_date = models.DateField() 根据我的经验,类似以下的查询工作很好: Sitting.objects.filter(start_date='2015-12-25') Sitting.o
日期字段时始终使用ISO-8601日期字符串,而不是datetime.date
。例如,如果我有如下模型:
from django.db import models
class Sitting(models.Model):
start_date = models.DateField()
根据我的经验,类似以下的查询工作很好:
Sitting.objects.filter(start_date='2015-12-25')
Sitting.objects.filter(start_date__gte='2016-01-01')
。。。以及:
Sitting.objects.filter(start_date=datetime.date(2015, 12, 25))
Sitting.objects.filter(start_date__gte=datetime.date(2016, 1, 1))
我的问题是:
- 这是官方支持的,还是可能有一些使用ISO-8601字符串不起作用的底层数据库
- 我可能遗漏了一些明显的东西,我在任何地方都找不到这个文档——Django文档中有没有描述如何使用查询
DateField
字段时使用的值
看下面的代码:@RadosławGanczarek:ah,对-我看到在DateField.to_python
中使用了它,它在get_prep_value
中使用。。。谢谢这不仅仅是一个DateField
的东西,所有django模型字段(我能想到的)都使用来转换python
(正如您所看到的)的值,这样myint='1'
也可以用于etc。请看下面的代码:@RadosławGanczarek:啊,对-我看到在DateField.to
中使用了它,在get\u prep\u value
中使用。。。谢谢这不仅仅是一个DateField
的东西,所有django模型字段(我可以想到)都使用to_python
(如您所见)来尝试转换值,这样myint='1'
也可以用于etc。