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

标签 mysql django timezone mezzanine

在我将一些 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 {% block date_hierarchy %}{% date_hierarchy cl %}{% endblock %}

感谢您帮助解决问题。

最佳答案

似乎是由 Django's 1.6 timezone functionality changes 引起的错误.文档现在特别提到了这个错误(bug reportlink to docs)。

您必须将时区表加载到 mysql (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 更新

关于mysql - 数据库在 QuerySet.dates() 中返回了无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351251/

相关文章:

javascript - Firefox 返回无效的时区偏移量?

mysql - 在检查存在状态时将 DateTime 插入 mysql

php - 当我按下登录按钮时,login.php 打印整个准备行 :(

mysql - 如何处理 mysql 中特定约束的错误?

django - 使用Django admin的用户ForeignKey的默认值

Magento 输出不正确的日期和时间

sql - 将带有时区的时间戳转换为星期几

MySQL触发器: ERROR #1442

python - 迁移时 Django MySQL 错误

Django REST 框架 : Two different ModelSerializers for the same model