Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

394
Visualizações
Setting Django admin display times to local time?

When I see dates and times in the admin, they are displayed in UTC. I'd like for them to be displayed in my local timezone. I checked the TIME_ZONE setting in the docs, though it doesn't look like that is quite what I want. TIME_ZONE determines the time zone for the datetimes stored in the database, which is not what I want to set -- I just want to localize the time zones for the admin, but not change how they are saved at the database level.

Is there a way to do this?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

In Django:

The default time zone is the time zone defined by the TIME_ZONE setting.

The current time zone is the time zone that’s used for rendering.

so you should set the "current time zone" use:

django.utils.timezone.activate(timezone)

You can activate it in a middleware(don't forger to register it to MIDDLEWARE in 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)

This is only a simple hardcode. you can making a form to select tzinfo, store it in user's profile and load it to user session, read the tzinfo from the session in the middleware.

The official documentation has a related description: https://docs.djangoproject.com/en/3.0/topics/i18n/timezones/#selecting-the-current-time-zone

Reference:

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

over 4 years ago · Santiago Trujillo Relatório

0

This isn't supported natively in Django as of 2.1. However https://github.com/charettes/django-sundial may provide what you need -- this adds a User.timezone model field so that you can configure it per-user.

(This middleware is very simple -- under the covers it's just calling timezone.activate(zone) to change the rendered site's timezone).

over 4 years ago · Santiago Trujillo Relatório

0

You can override the template for your change_list.html, change_form.html, etc. and do something like:

{% extends "admin/change_list.html" %}
{% load tz %}

{% block content %}
    {% timezone "US/Eastern" %}
        {{ block.super }}
    {% endtimezone %}
{% endblock %}

Do it with one of those methods:

  • 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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda