Я понял это.
Проблема заключалась в том, что поле renew_date
имело аргумент auto_now
, установленный в True
как таковой:
renew_date = models.DateField(auto_now=True, editable=False)
Я понял, auto_now
означает, что текущая дата будет использоваться при создании объекта, но оказывается, что это не так:
DateField.auto_now
Автоматически устанавливается
поле теперь каждый раз, когда объект
сохраняется Полезно для "последней модификации"
метки времени. Обратите внимание, что текущая дата
всегда используется; это не просто
значение по умолчанию, которое вы можете переопределить.
Из Django Docs .
Мне нужно было auto_now_add
, которое:
Автоматически установить поле на сейчас
когда объект впервые создан.
Полезно для создания меток времени.
Обратите внимание, что текущая дата всегда
используемый; это не просто значение по умолчанию
что вы можете переопределить.
Итак, после изменения моего renew_date
поля:
renew_date = models.DateField(auto_now_add=True, editable=False)
все работает, просто отлично :) 1033 *
>>> g = SelectStatProfile.objects.get(pk=3)
>>> g.renew_date
datetime.date(2010, 4, 11)
>>> from datetime import date, timedelta
>>> g.renew_date = date.today()+timedelta(days=365)
>>> g.renew_date
datetime.date(2011, 4, 11)
>>> g.save()
>>> g.renew_date
datetime.date(2011, 4, 11)