안녕하세요!!!!!!! 추상 모델 상속에 대하여 질문드리려고 합니다!!

안녕하세요. !!!ㅎㅎㅎ

추상 모델을 상속받고 수동으로 모델객체를 생성해서 사용하려고 하는데 자동으로 생성되어야 하는
created_at, updated_at 필드에서 에러가 나서 질문드립니다!!

아래는 추상모델이고요!!

class BaseModel(Model):

    driver_pk = models.CharField(max_length=10, verbose_name="키값")
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

아래는 위 BaseModel을 상속받아 사용하는 모델입니다!!

class Driver(BaseModel):

    class StateChoices(models.TextChoices):
        DONE = "DONE", "O"
        ING = "ING", "△"
        RELEASE = "RELEASE", "X"
    state = models.CharField(
        choices=StateChoices.choices,
        verbose_name="상태",
        max_length=10,
    )
    release_date = models.DateField(null=True, blank=True, verbose_name="해지날짜")
q = Driver(
    state= Driver.StateChoices.DONE, 
    driver_pk="홍길동7712345", 
    release_date="2021-12-15"
)
q.save()

위와 같이 모델 객체를 생성하려는데
IntegrityError: NOT NULL constraint failed: drivers_driver.created_at 에러가 뜨네요!?
원래 자동으로 생성되서 위 에러는 안떠야하는것같은데 이유가 뭘까요?
그리고 어떻게 하면 해결할 수 있을까요!!??

dodosan 241

M 2021년 12월 15일 3:14 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

q.save() 시 insert가 아닌 update가 실행된게 아닐까요? 실행되는 쿼리를 한번 출력해 보세요.
auto_now_add는 insert 쿼리에만 그 값이 저장됩니다.

박응용

2021년 12월 15일 3:57 오후