gpt4 book ai didi

python - 为什么 Django 称我的 datetimes 天真而他们不是?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:15 24 4
gpt4 key购买 nike

我有一个用 Django 1.6 构建的博客系统,我正在尝试呈现一个 YearArchiveView,或者至少从我的 Post 模型的 DateTimeField pub_date 中获取一个包含帖子的年份列表。它一直告诉我我的 pub_date 很天真,但我已经明确地改变了它们。

这是我在 python shell 上完成的一些操作:

    >>> for post in posts:
... post.pub_date
...
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
datetime.datetime(2014, 1, 14, 3, 23, 2, tzinfo=<UTC>)
>>> years = Post.live.datetimes('pub_date', 'year', order='DESC')
/Users/.../django/db/models/fields/__init__.py:903: RuntimeWarning: DateTimeField Post.pub_date received a naive datetime (2014-01-13 21:40:01.051109) while time zone support is active.
RuntimeWarning)

>>> years
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/.../django/db/models/query.py", line 71, in __repr__
data = list(self[:REPR_OUTPUT_SIZE + 1])
File "/Users/.../db/models/query.py", line 96, in __iter__
self._fetch_all()
File "/Users/.../django/db/models/query.py", line 854, in _fetch_all
self._result_cache = list(self.iterator())
File "/Users/.../django/db/models/sql/compiler.py", line 1107, in results_iter
raise ValueError("Database returned an invalid value "
ValueError: Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?
>>> import pytz
>>> posts[0].posted
datetime.datetime(2013, 9, 26, 0, 48, 8, tzinfo=<UTC>)
>>>

这到底是怎么回事?我要疯了!

最佳答案

检查 USE_TZ 是否为真。查看docs在 Django 1.6 上对 queryset.dates 的更改

关于python - 为什么 Django 称我的 datetimes 天真而他们不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com