안녕하세요!!!!!!! 추상 모델 상속에 대하여 질문드리려고 합니다!!
안녕하세요. !!!ㅎㅎㅎ
추상 모델을 상속받고 수동으로 모델객체를 생성해서 사용하려고 하는데 자동으로 생성되어야 하는
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 오후