회원가입 기능 구현하기
AbstraceUser 모델을 상속받아 CustomUser 모델을 정의할 때 email은 유일하도록 그리고 first_name과 last_name은 하나로 합쳐 이름 필드로 만들고 싶었다.
상속을 받으면 기본적으로 제공되는 email필드는 오버라이딩 하여 unique=True로 blank=False로 주어 유일하며 필수 입력이 되도록 설정하였고
first_name과 last_name은 None으로 정의하여 나타나지 않도록 해주었다
# accounts/models.py
class User(AbstractUser):
GENDER_CHOICES = [
("M", "남자"),
("W", "여자")
]
first_name = None
last_name = None
email = models.EmailField("email_address", unique=True, blank=False)
name = models.CharField("name", max_length=30)
nickname = models.CharField("nickname", max_length=20)
birthday = models.DateField("birthday")
gender = models.CharField("gender", max_length=1, choices=GENDER_CHOICES, blank=True)
introduce = models.TextField("introduce", blank=True)
# accounts/serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = "__all__"
뷰는 클래스형 뷰를 사용하여 post method를 사용하였을 때 저장이 되도록 하였다
# accounts/views.py
class SignupAPIView(APIView):
def post(self, request):
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[TIL] 장고 기초 이해도 오답노트 (0) | 2024.09.04 |
---|---|
[TIL] Django superuser (0) | 2024.09.03 |
[TIL] Django ORM (0) | 2024.08.30 |
pycharm django 환경설정 (0) | 2024.08.29 |
[TIL] DRF class based view (0) | 2024.08.29 |