2016-03-21 3 views
0

Я прочитал, хотя много документации и других вопросов о правильных и неправильных методах изменения часового пояса на объекте datetime. Я знаю, что правильное использование pytz и использование .localize и/или .astimezone и не использование .replace.Вручную часовой пояс в форме Django

Я пытаюсь выяснить, как разрешить пользователю вводить часовой пояс в форме. Я не хочу использовать локальные настройки браузера для определения часового пояса пользователя; пользователь должен иметь возможность указать, какой часовой пояс применяется к объекту datetime, прежде чем он будет сохранен в базе данных. Я уже установил TimeZoneField от django-timezone-field на модели, но я не могу понять, как правильно применить его к объекту datetime.

Все, что я пробовал, фактически преобразует время. Это что-то, что мне нужно будет сделать в javascript в шаблоне, а не в python?

ответ

1

Сделать datetime наивным, используя .replace(tzinfo=None). (ref)

Затем примените часовой пояс из поля часового пояса, используя tz.localize. (ref)

+0

Использование этого метода путем переопределения функции form_valid в представлении кажется сработавшим, но оно также очень сильно взломано. Я чувствую, что должен быть способ получить форму, чтобы передать наивный объект datetime. Спасибо за ответ, хотя. По крайней мере, мне это поможет, если я не смогу найти более чистый способ сделать это. – mattsl

Смежные вопросы