Установка часового пояса в поле DateTime в зависимости от выбранного местоположения - Django ModelForm UpdateView - PullRequest
1 голос
/ 12 июля 2020

У меня есть модель, связанная с событиями реального мира, которая содержит как DateTimeField, так и Location (PointField).

DateTime всегда будет вводиться / обновляться пользователем в TZ местоположения ( Я назову это местным временем). Поэтому, как только форма будет post ed, мне нужно получить часовой пояс для местоположения и применить его к локальному DateTime, прежде чем он будет сохранен в БД.

Поскольку это UpdateView, я также необходимо иметь возможность взять экземпляр, хранящийся в БД, и представить его пользователю в локальном времени в форме, когда пользователь get является формой.

Мне удобно получить часовой пояс для местоположение и использование часового пояса Django для преобразования даты и времени при необходимости. Однако я не уверен, что лучше всего. Вот два, которые я придумал:

  • Используйте django .utils.timezone activate (). Это кажется наиболее подходящим для pythoni c, но у меня 70% N00b и я не могу понять, какой метод переопределить, чтобы обеспечить правильную обработку get и post.
  • Переопределить get_context_data () и form_valid (). При таком подходе я бы выполнил изменение даты и времени с учетом часового пояса на локальное и обратно в каждом методе.

Спасибо за любую помощь. Э ... сегодня субботняя ночь.

...