안녕하세요. 장고 문서보면서 공부중인 사람입니다. 문서를 읽다보니 궁금한게 있어서 질문해

 
공대영

안녕하세요. 장고 문서보면서 공부중인 사람입니다.

문서를 읽다보니 궁금한게 있어서 질문해봅니다

model.py 에 아래와같은 모델이 있습니다

class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(‘date published’)

이걸 사용하다가 중간에 추가할일이 있어서

class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(‘date published’)
just_text = models.CharField(max_length=100)

이렇게 마지막에 just_text 를 추가했다 가정하면
manage.py makemigrations 이름 이렇게 명령어를 치면
첨부한 사진과 같이 나오네요. 1번도 해보고 2번도 해봤는데 그냥 똑같아요.

혹시나해서 migrations 폴더에 확인해봤는데 제일 처음했던 0001 빼고는 없네요

모델 추가나 수정은 어떡해 해야하나요?


  • Julian Yoonhong Ju

    1번 한다음에 기본값으로 ”요러면 되지않나요?

    공대영

    Julian Yoonhong Ju 오. 따옴표 두개 해주니까 0002로 생성되네요. 감사합니다 ^^

    Hyeonseung Lee

    이런 일이 일어나는 이유는,
    처음에 question_text와 pub_date를 가진 Question을 db에 만들었다가, 그 다음 just_text를 추가하려고 보니까 기존데이터들에도 just_text를 추가해 줘야 하는데 just_text에 null을 넣어도 된다는 설정이 안되어있으니 그럼 뭔가 데이터들을 “기본값”으로 넣어줘야 하는데 어떻게 할거냐는 겁니다.
    1번은 기본값을 넣어줄 수 있는 인풋을 띄워줄테니 넣어줘
    2번은 니가 직접 just_text에 null가능 설정을 넣든지 default를 넣든지 해라는 겁니다.
    가장 쉬운 해법은 1번을 고르고 CharField이니까 스트링을 넣어주되 빈 스트링인 ”를 넣는거죠.

    공대영

    Hyeonseung Lee 그런뜻이군요. 다음부턴 그냥 ” 이거나 null=true 해줘야 겠어요

    Duke Duk Soo Park

    아니면 그냥 default=” 이걸 추가해주셔도 되요.

Advertisements