Как я могу преобразовать DateTimeField в Django из UTC в часовой пояс пользователя (обычно PST) при запросе модели Django? - PullRequest
0 голосов
/ 16 января 2019

Я запрашиваю модель Django, подключенную к таблице в моей базе данных Postgres, которая содержит дату и время, сохраненные в UTC.

Мой код запроса выглядит примерно так:

query_set = table_object.objects.values()

Одним из столбцов в наборе запросов является значение datetime в UTC.

Модель выглядит так:

class ops_inbox_view(models.Model):
    requested_date = models.DateTimeField()
    other_item = models.CharField(max_length=20)
    other_item2 = models.CharField(max_length=40)
    other_item3 = models.CharField(primary_key=True, max_length=10)
    other_item4 = models.CharField(max_length=50)
    other_item5 = models.CharField(max_length=50)
    other_item6 = models.CharField(max_length=50)

Я хочу преобразовать это в PST или надежно в местном часовом поясе пользователя. Мое текущее решение - использовать pandas с dt.tz_localize и dt.tz_convert после загрузки набора запросов в фрейм данных, но я пытаюсь найти решение, которым легко управлять в одном месте структуры файлов проекта приложения. В моем файле settings.py у меня TIME_ZONE установлено значение 'US/Pacific', но поскольку я использую Pandas, преобразование в PST не выполняется автоматически, и мне придется изменить много строк кода в моем views.py, чтобы выполнить преобразование с пандами.

Есть ли способ не использовать Pandas и вместо этого либо уведомить часовой пояс поля, либо сделать явное преобразование в коде запроса? Также ищите любые другие лучшие практики в управлении часовым поясом и показе. Обслуживание этого поля даты и времени в html-файле ...

1 Ответ

0 голосов
/ 16 января 2019

Вам не нужно использовать панд для преобразования часовых поясов.Django хорошие встроенные инструменты управления часовым поясом.Их документы по часовому поясу также довольно хороши, поэтому я бы посоветовал прочитать их до конца.

Проблема, с которой вы столкнулись, кажется очень похожей на проблему , описанную в ихдокументы

...