Как вы заставляете Django-admin знать часовой пояс? - PullRequest
11 голосов
/ 13 марта 2012

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

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 14 марта 2012

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

Так что части есть, но на этом этапе все еще поделки, извините.

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

3 голосов
/ 13 марта 2012

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

0 голосов
/ 14 ноября 2015

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

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

...