Я отлаживаю некоторый провальный тест после того, как мы недавно обновили 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+ или это было по умолчанию в течение достаточно долгого времени? Кто-нибудь может поделиться своим опытом с этим крайним случаем?