jueves, 7 de febrero de 2013

Django : Problema Fechas Diferentes en Modelos o Base de Datos

Esto es muy sencillo pero me ha llevado mucho tiempo darme cuenta en donde estaba el problema.

Cuando almacenaba Django alguna fecha en alguna tabla por alguna razón la fecha-hora que quedaba almacenado físicamente en la base de datos era diferente a la que podía obtener desde Django.

Ojo, Django me mostraba la fecha-hora tal como la necesitaba pero fisicamente en la base de datos quedaba otra. Quizá esto no sea un problema en algunos proyectos, pero como el proyecto que estoy desarrollando en este momento no solo esta en Django es decir existe más software que se conecta a la misma base de datos y obtiene información por lo que esto es un verdadero problema en mi caso claro.

La forma de solucionarlo es realmente simple en el archivo settings.py se debe poner el valor:

 USE_TZ=False      # Por omisión se encuentre en True

Una vez cambiado este parametro las fechas que se almacenan en Django y las que se encuentran fisicamente en la base de datos son las mismas.

Espero te sea de utilidad !


Más información:
https://docs.djangoproject.com/en/dev/topics/i18n/timezones/

2 comentarios:

  1. Muchas gracias, llevaba días tratando averiguar donde estaba el problema. Realmente mediante datetime.datentime.now() obtenia la fecha actual con horas minutos y segundos y era la correcta, pero al almacenarla en la base de datos y después al extraerla de ella me mostraba una fecha incorrecta. De verdad muchas gracias por la entrada.

    ResponderEliminar
  2. gracias por el aporte, era muy prioritario para mi proyecto tambien. y si que fue un dolor buscar referencias y finalmente encontre esta buen post!

    ResponderEliminar