Метод get_db_prep_value
только подготавливает значение для базы данных, но никак не отправляет подготовленное значение обратно объекту Python. Для этого вам понадобится метод pre_save
, я думаю.
К счастью, в DateField и DateTimeField уже есть опция "auto_now", которая делает то, что вы хотите, используя pre_save
. Попробуйте:
class Table1(models.Model):
f = models.DateTimeField(auto_now=True)
(Если вы должны написать свой pre_save
, посмотрите, как auto_now
изменяет фактический экземпляр модели в /django/db/models/fields/__init__.py
в строках 486-492:
def pre_save(self, model_instance, add):
if self.auto_now or (self.auto_now_add and add):
value = datetime.datetime.now()
setattr(model_instance, self.attname, value)
return value
else:
return super(DateField, self).pre_save(model_instance, add)
)