Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用ISO-8601日期字符串与Django'中的日期字段进行比较;s ORM正式支持且可移植?_Django_Date_Django Models_Orm - Fatal编程技术网

正在使用ISO-8601日期字符串与Django'中的日期字段进行比较;s 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

似乎有了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.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。