Абстрактная модель Django работает не так, как ожидалось
У меня есть абстрактная модель django и базовая модель. Я ожидаю, что любой экземпляр базовой модели будет иметь значение для поля created_at или updated_at. Однако на данный момент все мои экземпляры имеют None для обоих этих полей. Что я делаю неправильно?
from django.db import models
class Trackable(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Quotation(Trackable):
reference = models.CharField(null=True, max_length=80)
quotation = Quotation(id=1)
print(quotation.created_at)
>>> None
Поля имеют значение None
, потому что эти поля в вашей абстрактной модели заполняются только при сохранении объекта в базе данных. Когда вы только инстанцируете модель, она не обращается к базе данных, поэтому они имеют значение None, если только вы не вызовете метод save()
.
Попытка:
quotation = Quotation(id=1)
quotation.save()
print(quotation.created_at)