Я использую ReportLab в Django. У меня есть модель со следующим полем:Django ReportLab Часовой пояс
time_stamp = models.DateTimeField(auto_now_add=True)
И моя TIME_ZONE
переменным settings.py устанавливаются в:
Africa/Johannesburg
Я использую formset для заполнения этой модели. Поле time_stamp корректно сохраняет правильный часовой пояс, но когда я помещаю time_stamp в свой файл ReportLab pdf, часовой пояс устанавливается в UTC.
Например: time_stamp
в сохраненной модели (как str(time_stamp)[:19]
является:
2015-03-04 07:57:28
Но time_stamp
в PDF-документе (как str(time_stamp)[:19]
является:
2015-03-04 05:57:28
Ровно через 2 часа раньше (Африка/Йоханнесбург UTC + 2 часа).
Как установить часовой пояс для ReportLab? он указывается в settings.py или в views.py при создании pdf? Если нет решения, как добавить 2 часа в time_stamp
?
Некоторые ответы предложили изменить auto_now_add=True
на default=datetime.datetime.now()
, но это создает предупреждение при миграции базы данных (используется наивное выражение).
Что значение USE_TZ в настройках? –
Привет. USE_TZ = True – wernerfeuer
Не заметил настройки - изменил его на USE_TZ = False, и он работает! Спасибо за подсказку! – wernerfeuer