Django установка модели. DateField () с объектом даты и времени - PullRequest
0 голосов
/ 31 марта 2020

Я отлаживаю некоторый провальный тест после того, как мы недавно обновили django 1.11 до 2.2, и я заметил поведение, которого я не знал раньше.

рассмотрим следующий код

from datetime import date, datetime, timedelta

class User(models.Model):
    birthday = DateField()

user = User.objects.create(birthday=date.today())

# setting the DateField object with datetime
yesterday_datetime = datetime.now() - timedelta(days=1)
user.birthday = yesterday_datetime
user.save()

user.refresh_from_db()
print(user.birthday)     # returns date.today()

Я всегда предполагал, что когда объект DateField заполнен объектом datetime, то аспект даты объекта datetime берется и сохраняется. Похоже, что это не так, и поле не обновляется / сохраняется в БД.

Это поведение django 2+ или это было по умолчанию в течение достаточно долгого времени? Кто-нибудь может поделиться своим опытом с этим крайним случаем?

1 Ответ

1 голос
/ 31 марта 2020

Кажется, проблема связана с часовым поясом. Вы можете установить DateField с объектом datetime, и он сохраняет аспект даты этого. Но часовой пояс нужно учитывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...