【问题标题】:Django filter datetime elementsDjango 过滤日期时间元素
【发布时间】:2017-08-31 14:18:15
【问题描述】:

我的项目使用 django 1.11.2。 我已经定义了一些模型并且一切正常。

现在我需要按日期从我的一个模型中获取一些数据。例如所有月份=8,月份=9....的条目。

我有这个,MyModel(....some fields...., created_date) 和 models.py 我有:

....
created_date=models.DateTimeField()
....
....
self.created_date=(datetime.now())
....

Created_date 是一个日期时间字段,其值采用以下格式:YYYY-MM-DD HH:MM:SS,例如 2017-08-31 14:25:58。

所以,我看到了这个:https://docs.djangoproject.com/en/1.11/ref/models/querysets/#month

这对我来说是完美的,但不起作用。

我在 shell 中这样写:

>>> from project.models import MyModel
>>> from datetime import *
>>> MyModel.objects.all() ---> Work ok, I get all entries
>>> MyModel.objects.filter(created_date__month=8)
<QuerySet []>

在这种情况下,我得到一个空的 Quertset。

【问题讨论】:

  • 它有效。您没有第 7 个月的记录。
  • 不抱歉,举个例子,我有很多关于蛾 6、7 和 8 的记录,但不起作用
  • 打印你的日期时间并检查它是几月
  • 请将您的对象的输出写给我们 -> created_date
  • 使用 USE_TZ = 假工作

标签: python django date datetime


【解决方案1】:

您可能需要在settings.py 文件中将USE_TZ 设置为False

USE_TZ = False

如果设置为True,即启用timezone,则__month 查找将不起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-25
    • 2014-03-31
    • 1970-01-01
    • 2023-03-23
    • 2016-07-21
    • 2016-07-20
    • 2015-04-10
    • 2015-10-18
    相关资源
    最近更新 更多