작성
·
363
0
선생님 안녕하세요
SignupForm 클래스에 UserCreationForm을 상속받고 메타 클래스 필드에 username, email, first_name, last_name을 추가해줬는데요,
모델에도 해당 필드를 추가해줘야 하지 않나요?
해당 필드를 추가하고 정보를 입력해도 admin USER에 추가가 안되어 질문 드립니다!
forms.py
models.py
정보 추가
admin
** 참고로 def __init__(self, *args, **kwargs)초기값도 적용이 안됩니다..
항상 감사드립니다!
답변 2
1
안녕하세요.
accounts/User 모델은 AbstractUser 모델을 상속받았으며, email/first_name/last_name 은 AbstractUser 모델에 이미 정의된 필드이므로, User 모델에 별도로 필드를 정의하실 필요가 없습니다.
그리고 AbstraxctUser 모델에서 first_name/last_name 은 blank=True 설정이 있기에, 모델폼에서 required=False 지정이 자동으로 이뤄지고, 폼에서 first_name/last_name 필드 입력이 없이도 유효성 검사에 통과하게 됩니다.
보여주신 코드대로 모델폼에서 필드 별로 required=True 설정을 하게되면, 아래와 같이 빈 입력값에 대한 유효성 검사를 함을 확인하실 수 있습니다.
코드를 정확히 쓰셨는 데 동작이 다르다면, 소스코드를 잘 저장하셨는 지 혹은 VSCode에서 연 프로젝트 경로와 개발서버를 구동시킨 경로가 혹시나 다르진 않는 지를 잘 확인해보세요.
올려주신 코드 그대로 제가 구동해봤을 때에는 잘 동작하고 있습니다. DB에도 잘 저장되고 있구요.
DB에 저장이 되지 않는다면, 회원가입 뷰에서 save가 잘 이뤄지고 있는 지 확인해보세요.
화이팅입니다.
0