[DRF] DRF Django로 user detail , 내 프로필 정보 확인&수정 구현하기 - 3편

2022. 5. 19. 01:04

이번 3편에서는 django rest framework로 user detail 확인, 내 프로필 정보 확인을 구현하도록 하겠다.

앞서 UserSerializer를 그대로 사용하여, view와 url만 추가해줄 것이다!

 

user_detail을 확인하는 view이다.

@api_view(["GET"])
@permission_classes([IsAdminUser])
def user_detail(request, pk):
    try:
        user = User.objects.get(pk=pk)
        return Response(UserSerializer(user).data)
    except User.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

 

method가 GET일 때, 그리고 permission_class가 AdminUser일 때에만 이 함수를 실행할 수 있게 설정해주었고,

user가 있다면 user의 data를 return 한다.

 

path("<int:pk>/", views.user_detail),

 

아래와 같이 url을 추가해준다!

 

그 다음으로는 내 프로필 정보 확인이다.

MeView라는 class 기반 view를 이용하여 구현하였다.

Authenticated된 user만 접근이 가능하게 하였고,

get method 일 때에는 내 프로필의 정보를 return 하고,

put method 일 때에는 UserSerializer에 partial=True 설정을 해주어서 수정을 가능하게 하였다.

 

class MeView(APIView):
    permission_classes = [IsAuthenticated]
    def get(self, request):
        return Response(UserSerializer(request.user).data)

    def put(self, request):
        serializer = UserSerializer(request.user, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response()
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

 

Url 추가! 

path("me/", views.MeView.as_view()),

 

user detail 확인

 

너무나도 간단하게 user detail과 내 프로필 정보 확인&수정을 구현해보았다.

 

다음 4편에서는 drf 회원가입 시 이메일 인증에 대해서 알아보도록 하겠다!

 

BELATED ARTICLES

more