class AccountDetailAPIView(APIView):
# 로그인상태
permission_classes = [IsAuthenticated]
def get_user(self, user_id):
return get_object_or_404(get_user_model(), pk=user_id)
# 프로필 조회
def get(self, request, user_id):
# 1. get user
user = self.get_user(user_id)
# 2. serializer userdata
serializer = UserDetailSerializer(user)
# 3. return user using serializer
return Response(serializer.data, status=200
회원 가입 기능 및 프로필 조회
class AccountAPIView(APIView):
# 회원 가입
def post(self, request):
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
username = serializer.validated_data['username']
email = serializer.validated_data['email']
# username중복 체크
if User.objects.filter(username=username).exists():
return Response({"error": "This name is already in use"}, status=status.HTTP_400_BAD_REQUEST)
if email:
if get_user_model().objects.filter(email=email).exists():
return Response({"Message": "email already exists"}, status=status.HTTP_400_BAD_REQUEST)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)