insertar formulario ejemplos desde datos con mysql django timezone mezzanine

mysql - formulario - La base de datos devolvió un valor no válido en QuerySet.dates()



pdo mysql (7)

Recibo este error en mi máquina Ubuntu 12.04 con mysql 5.5 después de importar contenido de Wordpress a blog_blogpost de Mezzanine.

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

Agregué a mi local_settings.py

import pytz from pytz import *

y también definió la zona horaria en my.cnf [mysqld]

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

pero aún obtengo el error de unidad. Obtengo la línea en la plantilla:

la etiqueta es:

140 {% block date_hierarchy%} {% date_hierarchy cl%} {% endblock%}

Aprecia tu ayuda para resolverlo.


Cargando zona horaria para Mysql resolvió el problema para mí. Si está en Windows, siga estas instrucciones:

Paso # 1: descargue el paquete que contiene los archivos de datos de las tablas de zonas horarias preconstruidas. http://dev.mysql.com/downloads/timezones.html

Paso # 2: descomprime el archivo ZIP descargado en una carpeta en tu Escritorio.

Paso # 3: Detener el servidor MySQL.

Para Xampp y Wamp usan su GUI o detienen el servicio mysql del Administrador de tareas.

Paso # 4: Abre el subdirectorio mysql del directorio de datos de tu servidor MySQL.

Para mí es C:/xampp/mysql/data/mysql

Paso # 5: sobrescribe los archivos de datos de zona horaria con la versión descargada.

Copie los 15 archivos de datos de su carpeta descomprimida y péguelos en la carpeta de datos para la base de datos del sistema mysql. Sobrescriba todos estos archivos .frm, .MYD y .MYI.

Paso # 6: reinicia el servidor MySQL.

Y el trabajo está hecho :-)

fuente: http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html


Lo que funcionó para mí:

1. Complete las definiciones de zona horaria en la tabla ''mysql''

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

2. tablas de lavado

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

3. Reinicia mysql

sudo service mysql restart


Los documentos de Django en realidad hablan sobre este problema :

Aparece un error "¿Están instaladas las definiciones de zonas horarias para su base de datos y pytz?" Pytz está instalado, ¿entonces supongo que el problema es mi base de datos?

Si está utilizando MySQL, consulte la sección de definiciones de zona horaria de las notas de MySQL para obtener instrucciones sobre cómo cargar las definiciones de zona horaria.

Si sigues ese enlace, obtienes este consejo:

Si planea usar el soporte de zona horaria de Django, use mysql_tzinfo_to_sql para cargar tablas de zona horaria en la base de datos MySQL. Esto debe hacerse solo una vez para su servidor MySQL, no por base de datos.

Aquí está el comando:

mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql mysql


Para Windows, siga los siguientes pasos:

  • detener el servicio
  • descargar los archivos proporcionados por MySQL, pero tenga en cuenta que entran
    C:/ProgramData/MySQL/MySQL Server VERSION/data/mysql
    no en
    C:/Program Files/MySQL/MySQL Server VERSION/data
    al menos en Windows 7 a partir de 2014.
  • También modifiqué C: / Archivos de programa / MySQL / MySQL Server VERSION / my.ini para agregar default-time-zone = ''UTC'' según los consejos aquí . Luego reinicia el servicio.

Para cualquier otra persona que pasara por aquí con el mismo problema en Mavericks, Anton me estaba mencionando el error por el que seguí recibiendo;

ERROR 1406 (22001) at line 38981: Data too long for column ''Abbreviation'' at row 1

Así que utilicé mysql_tzinfo_to_sql tz_file tz_name de los documentos de MySQL para cargar las zonas horarias específicas que quería;

mysql_tzinfo_to_sql /usr/share/zoneinfo/GMT GMT | mysql -u root -p mysql mysql_tzinfo_to_sql /usr/share/zoneinfo/UTC UTC | mysql -u root -p mysql

Y ahora Django no devuelve errores, así que estoy feliz: D


Para los usuarios de MacOS encontré una solución here (en comentario):

mysql_tzinfo_to_sql /usr/share/zoneinfo | sed -e "s/Local time zone must be set--see zic manual page/local/" | mysql -u root mysql

Porque en MacOS tenemos un error como este:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u roomysql Warning: Unable to load ''/usr/share/zoneinfo/+VERSION'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Asia/Riyadh87'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Asia/Riyadh88'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Asia/Riyadh89'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Mideast/Riyadh87'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Mideast/Riyadh88'' as time zone. Skipping it. Warning: Unable to load ''/usr/share/zoneinfo/Mideast/Riyadh89'' as time zone. Skipping it. ERROR 1406 (22001) at line 38981: Data too long for column ''Abbreviation'' at row 1


Parece que el error provocó cambios en la funcionalidad de la zona horaria 1.6 de Django . Los documentos ahora mencionan específicamente este error ( informe de errores , enlace a documentos ).

Debe cargar tablas de zona horaria en mysql ( http://dev.mysql.com/doc/refman/5.6/en/mysql-tzinfo-to-sql.html ). Intente ejecutar en su servidor de base de datos:

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

Y luego ejecute "tablas de limpieza" o "limpieza de caché de consultas"; de lo contrario, es posible que el problema no desaparezca aunque haya cargado los datos de zona horaria correctos:

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

actualizado por @qris