Подтвердить что ты не робот

DateTimeField получил наивное datetime

У меня есть модель с столбцом DateTimeField.

Я пытаюсь вставить строку с базой данных current_time непосредственно в таблицу по sql-запросу.

Мой запрос sql для базы данных MySQL, например:

INSERT INTO MyTable (..., my_datetime, ...) VALUES (..., current_time, ...)

И получим:

RuntimeWarning: DateTimeField Имя_файла .field_name получил наивный datetime (2014-01-09 22:16:23), в то время как поддержка часовых поясов активна.

Как вставить текущее время непосредственно в таблицу по sql-запросу без предупреждения?

4b9b3361

Ответ 1

В дополнение к ответу falsetru, если дата-время уже создано, вы можете преобразовать его в известный часовой пояс:

from django.utils import timezone
my_datetime = timezone.make_aware(my_datetime, timezone.get_current_timezone())

Ответ 3

Вы также можете указать зону времени datetime с помощью localize от pytz, как описано здесь.

UTC:

import pytz
dt_aware = pytz.utc.localize(dt_naive)

Любой другой часовой пояс:

import pytz
tz = 'Europe/Berlin' #or whaterver timezone you want
dt_aware = pytz.timezone(tz).localize(dt_naive)

И здесь список часовых поясов.