인프런 커뮤니티 질문&답변

정중한 앵무새님의 프로필 이미지
정중한 앵무새

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

커스텀 유저 지정 및 회원가입 구현

Usercreationform과 model 관계

작성

·

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

설명 감사드립니다!

정중한 앵무새님의 프로필 이미지
정중한 앵무새

작성한 질문수

질문하기