Абстрактная модель 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)
Вернуться на верх