Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

408
Vistas
¿Configurar los tiempos de visualización del administrador de Django a la hora local?

Cuando veo fechas y horas en el administrador, se muestran en UTC. Me gustaría que se muestren en mi zona horaria local. Revisé la configuración de TIME_ZONE en los documentos , aunque no parece que sea exactamente lo que quiero. TIME_ZONE determina la zona horaria para las fechas y horas almacenadas en la base de datos, que no es lo que quiero configurar; solo quiero localize las zonas horarias para el administrador, pero no cambiar cómo se guardan en el nivel de la base de datos.

¿Hay alguna forma de hacer esto?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En Django:

La zona horaria predeterminada es la zona horaria definida por la configuración TIME_ZONE.

La zona horaria actual es la zona horaria que se utiliza para la representación.

por lo que debe configurar el uso de "zona horaria actual" :

django.utils.timezone.activate(timezone)

Puede activarlo en un middleware (no olvide registrarlo en MIDDLEWARE en settings.py):

 import pytz from django.utils import timezone class TimezoneMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): timezone.activate(pytz.timezone('Asia/Shanghai') return self.get_response(request)

Esto es solo un código duro simple. puede crear un formulario para seleccionar tzinfo, almacenarlo en el perfil del usuario y cargarlo en la sesión del usuario, leer el tzinfo de la sesión en el middleware.

La documentación oficial tiene una descripción relacionada: https://docs.djangoproject.com/en/3.0/topics/i18n/timezones/#selecting-the-current-time-zone

Referencia:

https://groups.google.com/forum/#!topic/django-developers/E4aiv3O6vGo

over 4 years ago · Santiago Trujillo Denunciar

0

Esto no se admite de forma nativa en Django a partir de 2.1. Sin embargo, https://github.com/charettes/django-sundial puede proporcionar lo que necesita; esto agrega un campo de modelo User.timezone para que pueda configurarlo por usuario.

(Este middleware es muy simple: debajo de las sábanas, solo está llamando a timezone.activate(zone) para cambiar la zona horaria del sitio renderizado).

over 4 years ago · Santiago Trujillo Denunciar

0

Puede anular la plantilla para su change_list.html , change_form.html , etc. y hacer algo como:

 {% extends "admin/change_list.html" %} {% load tz %} {% block content %} {% timezone "US/Eastern" %} {{ block.super }} {% endtimezone %} {% endblock %}

Hazlo con uno de esos métodos:

  • https://docs.djangoproject.com/en/dev/ref/contrib/admin/#admin-overriding-templates
  • https://docs.djangoproject.com/en/dev/ref/contrib/admin/#custom-template-options
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda