반응형
오류 발생
django,contrib.auth.models.py 의
class AbstractUser(AbstractBaseUser, PermissionsMixin):
클래스에 새로운 항목을 추가해주었더니
major = models.CharField(_("major"), max_length=150, blank=False)
It is impossible to add a non-nullable field
Null 이 될수 없는 필드를 추가하는 것을 불가능하다.
to user without specifying a default.
Default 인 경우를 지정해주지 않았다.
오류 발생 이유 분석
blank=False 을 통해서 /register로 기입시에 항상 기입을 하도록 설정해두어서 Non-nullable 상태 일것이라고 생각을 했는데 잘못 생각을 했던것이다. 따라서 null=True 옵션을 추가하여 오류를 피했다.
입력을 하지 않으면 null=True 에 의해서 NULL로 저장되는지 blank=False 에 의해서 값을 입력하라고 하는지는 추후에 추가 포스팅 하도록 하겠다.
오류 해결
말 그대로 Null 이 되게 하던가 Default인 경우를 지정해주면 위의 에러가 해결이 된다.
1. 위의 오류화면에서 2를 선택하고
2. 오류가 난 경로로 돌아가서 필드 속성에 nullable 하게 만들어주거나 default 를 할당해준다.
3. makemigration 수행
4. migrate 수행
따라서 필드에 null = True 를 입력하거나 null 시에 입력될 default = '내용'을 할당하여 주면 된다.