Django Admin date_hierarchy 中的 NonExistentTimeError

Ale*_*nko 5 python django django-admin django-grappelli django-timezone

我刚刚在 Django Admin 中遇到错误。这是本地重现的日志:

NonExistentTimeError at /admin/{blah}/
2015-10-18 00:00:00
Request Method: GET Request
URL:    http://127.0.0.1:8000/admin/{blah}/?q=someuser%40hotmail.com
Django Version: 1.7.10
Exception Type: NonExistentTimeError
Exception Value:     2015-10-18 00:00:00 Exception
Location:   C:\Python27\lib\site-packages\pytz\tzinfo.py in localize,
line 327 Python Executable: C:\Python27\python.exe Python
Version:    2.7.10
Run Code Online (Sandbox Code Playgroud)

我发现它确实2015-10-18 00:00:00不存在于我的时区(“美国/圣保罗”)中,因为那是夏令时开始的时间。

我正在使用date_hierarchy = 'date_lastupdated',当我在管理员中搜索用户someuser@hotmail.comDjango 时,仅返回一条记录,而该用户的记录date_lastupdated'2015-10-18 05:10:18.593336-03'.

错误发生在模板~~~~/Python27/lib/site-packages/grappelli/templates/admin/change_list.html第 212 行:

<!-- DATE HIERARCHY -->
    {% block date_hierarchy %}
        {% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}
    {% endblock %}
Run Code Online (Sandbox Code Playgroud)

因此,Grappelli 试图在管理列表中仅构建一次层次结构分数链接,但它不起作用

我能够在两台机器(Linux 和 Windows)上重现它,我升级了 PYTZ。2015.4和2015.6版本中仍然发生。

这是一个已知的问题?

小智 1

不知道你现在问题解决了吗?希望你做到了。我有点绝望,找到了这个解决方案:

http://www.ilian.io/django-pytz-nonexistenttimeerror-and-ambigouslytimeerror/

我在我的环境中编辑了该文件:

/myenv/lib/python2.7/site-packages/django/db/models/sql/compiler.py
Run Code Online (Sandbox Code Playgroud)

并更改了第 1145 行(错误开始的行)的代码。

对我来说,第二个解决方案效果最好。

我知道这不是最好的选择,但这是一个快速修复,只是为了让系统继续运行一段时间。