python - Django 1.9 日期时间过滤器

标签 python django datetime django-1.9

我正在尝试过滤包含以下字段的模型:

TEMP_START = models.DateTimeField(null=True)

我正在使用语法

x.filter(TEMP_START__date = datetime.datetime(2016, 3, 31, 8, 0, tzinfo=<UTC>))

但是,这会返回多个唯一的 TEMP_START 值。我认为这是因为我的数据存储没有时区。但是,我在 settings.py 文件中设置了:

TIME_ZONE = 'UTC' # 'America/Chicago'

USE_I18N = True

USE_L10N = True

USE_TZ = True

我不确定为什么此过滤器语句返回其他唯一的日期时间对象值。我知道“__date”过滤器是 Django 1.9 中的新增功能。这只是一个错误吗?

最佳答案

顾名思义,__date 字段查找仅适用于日期。不适用于日期时间对象;时间被忽略。

documentation ,特别是示例,还显示了这一点:

For datetime fields, casts the value as date. Allows chaining additional field lookups. Takes a date value.

Example:

Entry.objects.filter(pub_date__date=datetime.date(2005, 1, 1)) Entry.objects.filter(pub_date__date__gt=datetime.date(2005, 1, 1))

正如它所说:“采用日期值。”。因此,__datedatetime.date 对象进行比较,而不是与 datetime.datetime 对象进行比较。

您的 datetime.datetime 对象显然在底层被转换为 datetime.date 对象。

关于python - Django 1.9 日期时间过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339417/

相关文章:

python - python 中与变量限制积分

python - 字段名称选择 'reference' 不是有效选择问题

html - 如何在 Django 中制作 slider ?

c# - 同步两个日期时间

python - 如何从 python 中的箱线图中获取最小值和最大值?

python - django 动态蜘蛛错误 "check_mandatory_vars"

python - django 如何在 view.py 中使用多线程?

ios - 设置当前时间为yyyy-MM-dd 00 :00:00 using Swift

excel - 在ag-grid Excel导出中,如何将空日期时间类型设置为空单元格而不是1900.01.00

Python(GDAL): projection conversion from WGS84 to NZTM2000 is not correct