1. seriaizers.py의 시리얼라이저 사용에서의 오류
문제
회원가입을 작성 중
accounts/views.py
class UserCreateAPIView(APIView):
def post(self, request):
is_valid, err_msg = validate_signup(request.data)
if not is_valid:
return Response({"error": err_msg}, status=status.HTTP_400_BAD_REQUEST)
user = User.objects.create_user(**request.data)
print(user)
serializer = UserSerializer(user)
print(serializer.data)
return Response(serializer.data, status=status.HTTP_200_OK)
accounts/serializers.py
class UserSerializer(serializers.Serializer):
class Meta:
model = User
fields = (
"id",
"username",
"email",
"birthday",
)
위와 같이 뷰와 시리얼라이저를 작성했을 때 유저는 정상적으로 나왔지만
시리얼라이저에 데이터가 제대로 넘어오지 않았다.
해결
문제는 시리얼라이저에서 상속받은 시리얼라이저가 모델 시리얼라이저가 아닌 일반 시리얼라이저를 상속받아 발생한 문제였다
수정된 accounts/serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = (
"id",
"username",
"email",
"birthday",
)
시리얼라이저를 수정한 후에는 아래와 같이 보내준 데이터가 잘 전달되는 것을 확인할 수 있었다.
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[TIL] 트러블 슈팅 - django 프로젝트 외부 파일 실행 (1) | 2024.09.19 |
---|---|
[TIL] trouble shooting - like count (0) | 2024.09.15 |
[TIL] project setting (0) | 2024.09.11 |
[TIL] spartamarket-DRF 트러블 슈팅2 (1) | 2024.09.10 |
[TIL] spartamarket-DRF 트러블 슈팅 (0) | 2024.09.09 |