2012-03-13 9 views
10

Tengo información de fecha y hora almacenada en la base de datos como UTC. Estoy mostrando esta información usando el administrador de Django.¿Cómo se hacen Django-admin zona horaria consciente?

¿Hay alguna manera de mostrar la información de fecha y hora en la zona horaria actual del usuario final en Django admin?

Normalmente creo que la lógica para esto sería en la capa de plantilla/vista, sin embargo, Django-admin oculta todo esto lejos de ti y parece que tendría que anular muchos de los archivos ocultos (lo que no hago) quiero hacer).

Una idea es clasificar DateTimeField en los modelos y hacerlo de modo que lo convierta a la zona horaria local cada vez que lo tome de la base de datos, aunque no estoy seguro de si esto funcionará.

¿Alguien tiene alguna sugerencia? Gracias.

+1

Realmente me gustaría saber que tuve que implementar esto manualmente. Si a nadie se le ocurre algo, publicaré mis hacks, básicamente una plantilla. – jpic

+0

hey @jpic ... no me importaría mirar tus hacks. Es algo a lo que tendré que recurrir si no puedo encontrar una solución limpia. Aclamaciones. – keyworks

Respuesta

3

El soporte de zona horaria localizada está disponible en el Django 1.4 que pronto se lanzará.

+0

Aparentemente, el soporte de zona horaria de Django 1.4 no admitirá el administrador de Django. ver la publicación de Danny a continuación. – keyworks

+0

Sí, como se menciona en [docs] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#selecting-the-current-time-zone) y en el hilo de correo electrónico de Danny, no está No es algo fácil de lograr ... Pero, por el lado bueno, al menos debería ser mucho más fácil de lo que sería en versiones anteriores. ;) – roam

+0

Django 1.4 soporta zonas horarias para django-admin. Seguí esta [guía de migración] (https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#time-zones-migration-guide) y funcionó a la perfección. – keyworks

6

Django 1.4 introducirá el soporte de zona horaria, pero el administrador todavía no lo estará usando. Todavía hay preguntas sobre la implementación de la zona horaria para "bendecir" (pytz), donde almacenar la zona horaria por usuario (sin autenticación de migración de esquemas incorporada. El usuario básicamente no puede tocar sin forzar a cada usuario de Django a sincronizar su base de datos). y todavía no hay una IU para la selección de la zona horaria.

Por lo tanto, las piezas están ahí pero sigue siendo DIY en esta etapa, lo siento.

Ver el hilo que empecé en django-desarrolladores http://groups.google.com/group/django-developers/browse_thread/thread/1386a2bf73babc6a

+0

Hola Danny, django-admin en django 1.4 parece ser compatible con zonas horarias. No tuve problemas para implementarlo siguiendo la guía de migración en los documentos de django. – keyworks

+1

Mi respuesta fue a su pregunta "¿Hay alguna manera de mostrar la información de fecha y hora en la zona horaria actual del usuario final en el administrador de Django?" - En el administrador de Django, todos sus usuarios verán la misma fecha y hora, sin importar dónde se encuentren. (por las razones antes mencionadas) –

0

Si sabe lo que la zona horaria que desea usar, hay técnicas para hacer que la entrada y visualización de datos dentro de la administración para utilizar esa zona horaria. Ver la entrada del blog https://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/

En mi caso, todos los usuarios administradores están en la zona horaria del servidor, así que pude utilizar este enfoque para que el administrador use esa zona horaria. Sin embargo, tenga en cuenta que esto se hace por campo, más que globalmente, y no sé cómo obtener una fecha_hierarquía para usar fechas relativas a esta zona horaria.