RuntimeWarning: DateTimeField получил наивное значение даты и времени с правильным часовым поясом и настройками

#django #datetime

#django #дата и время

Вопрос:

Я получаю это сообщение об ошибке:

Предупреждение о времени выполнения: поле DateTimeField Z.data_zal получил наивное значение даты и времени (2020-11-05 07:13:24), пока активна поддержка часовых поясов. предупреждения.warn(«Поле DateTimeField %s получило наивное значение даты и времени (%s)»

На этом этапе создания экземпляра моей модели: views.py

  from django.utils import timezone

 t = Z(data_z=timezone.now().strftime('%Y-%m-%d %H:%M:%S'), data_r=data_r, author=request.user)
 try:
     t.save()
  

Итак, насколько я знаю, эта ошибка возникает при использовании datetime module вместо timezone .
Иногда проблема заключается в неправильном settings.py , но я бегу:

 TIME_ZONE = 'Europe/Warsaw'

USE_TZ = True
  

В чем, по-видимому, проблема?

Ответ №1:

Не .strftime() вы делаете timezone.now() наивным. https://docs.djangoproject.com/en/3.1/topics/i18n/timezones /

Комментарии:

1. Как мне тогда установить формат даты и времени? Мне нужно предоставить его модели в таком формате ‘%Y-%m-%d% H:%M:% S’

2. нет, вы этого не делаете … если ваше поле модели data_z является models . DateTimeField() timzone.now() будет достаточно