Как вы узнаете часовую зону Django-admin?

У меня есть информация о времени и времени, хранящаяся в базе данных в формате UTC. Я показываю эту информацию с помощью администратора Django.

Есть ли способ отображения информации о времени и времени для текущего часового пояса конечного пользователя в администраторе Django?

Обычно я думаю, что логика для этого была бы на уровне шаблона/представления, однако Django-admin скрывает все это от вас, и мне кажется, что мне придется переопределить многие скрытые файлы (которые я не делаю хотеть сделать).

Одна идея заключается в подклассе DateTimeField в моделях и сделать так, чтобы он преобразовывал его в локальный часовой пояс всякий раз, когда вы извлекаете его из базы данных, хотя я не уверен, что это сработает.

У кого-нибудь есть предложения? Благодарю.

Ответ 1

Локализованная поддержка часового пояса доступна в скоро появляющемся Django 1.4.

Ответ 2

Django 1.4 представит поддержку часового пояса, но администратор все равно не будет ее использовать. Есть вопросы по поводу того, какой временной интервал для "благословить" (pytz), где хранить часовой пояс для каждого пользователя (без встроенной миграции схемы auth.User в принципе не может быть затронут, не заставляя каждого пользователя Django синхронизировать свою базу данных) и пока нет пользовательского интерфейса для выбора часового пояса.

Итак, части есть, но все же DIY на этом этапе, извините.

Смотрите тему, которую я начал на django-developers http://groups.google.com/group/django-developers/browse_thread/thread/1386a2bf73babc6a

Ответ 3

Если вы знаете, какой часовой пояс вы хотите использовать, существуют методы для ввода данных и отображения внутри администратора для использования этого часового пояса. См. Сообщение в блоге https://www.caktusgroup.com/blog/2014/01/09/managing-events-explicit-time-zones/

В моем случае все пользователи admin находятся в часовом поясе сервера, поэтому я смог использовать этот подход, чтобы администратор мог использовать этот часовой пояс. Обратите внимание, что это делается только для каждого поля, а не во всем мире, и я не знаю, как получить дату_иерархию для использования дат относительно этого часового пояса.