数据库在 QuerySet.dates() 中返回无效值

2024-02-12

在将一些 Wordpress 内容导入 Mezzanine 的 blog_blogpost 后,我​​在安装了 mysql 5.5 的 Ubuntu 12.04 机器上收到此错误。

ValueError at /admin/blog/blogpost/
Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?

Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/blog/blogpost/
Django Version: 1.6.1
Exception Type: ValueError
Exception Value:    
Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?
Exception Location: /home/me/.mezenv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py in results_iter, line 1107
Python Executable:  /home/me/.mezenv/bin/python
Python Version: 2.7.3
Python Path:    
[u'/home/me',
 '/home/me/sai',
 '/home/me/.mezenv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg',
 '/home/me/.mezenv/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg',
 '/home/me/.mezenv/lib/python2.7',
 '/home/me/.mezenv/lib/python2.7/plat-linux2',
 '/home/me/.mezenv/lib/python2.7/lib-tk',
 '/home/me/.mezenv/lib/python2.7/lib-old',
 '/home/me/.mezenv/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-linux2',
 '/usr/lib/python2.7/lib-tk',
 '/home/me/.mezenv/local/lib/python2.7/site-packages']
Server time:    Sat, 25 Jan 2014 13:44:11 +0100


Error during template rendering

In template /home/me/.mezenv/local/lib/python2.7/site-packages/grappelli_safe/templates/admin/change_list.html, error at line 140

我添加到我的 local_settings.py

import pytz
from pytz import *

并在 my.cnf [mysqld] 中定义了时区

default-time-zone = "+01:00"

但我仍然收到错误,直到我在模板中得到该行:

标签是:

140 {% 块 date_hierarchy %}{% date_hierarchy cl %}{% endblock %}

感谢您帮助解决问题。


看起来像是错误引起的Django 1.6 时区功能更改 https://docs.djangoproject.com/en/dev/ref/databases/#time-zone-definitions。文档现在特别提到了这个错误(错误报告 https://code.djangoproject.com/ticket/21629, 链接到文档 https://docs.djangoproject.com/en/stable/topics/i18n/timezones/#troubleshooting).

您必须将时区表加载到 mysql 中(http://dev.mysql.com/doc/refman/5.6/en/mysql-tzinfo-to-sql.html http://dev.mysql.com/doc/refman/5.6/en/mysql-tzinfo-to-sql.html)。 尝试在您的数据库服务器上执行:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p 

然后运行“刷新表”或“刷新查询缓存”,否则即使您加载了正确的时区数据,问题也可能不会消失:

mysql -u root -p -e "flush tables;" mysql 

由@qris更新

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库在 QuerySet.dates() 中返回无效值 的相关文章

随机推荐