[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과 내 프로필 정보 확인&수정을 구현해보았다.
다음 4편에서는 drf 회원가입 시 이메일 인증에 대해서 알아보도록 하겠다!
'Django > Django Rest FrameWork' 카테고리의 다른 글
[DRF] DRF Django로 아이디/비밀번호 찾기 구현하기 - 5편 (0) | 2022.06.04 |
---|---|
[DRF] DRF Django로 이메일 인증(SMTP) 구현하기 - 4편 (0) | 2022.05.19 |
[DRF] DRF Django로 회원가입&로그인 구현하기(Username을 Email로!) - 2편(view & url & serializer) (0) | 2022.05.19 |
[DRF] DRF Django로 회원가입&로그인 구현하기(Username을 Email로!) - 1편(model & admin) (0) | 2022.05.17 |
[DRF] JWT로 로그인 구현하기(2) - Access Token & Refresh Token (1) | 2022.03.23 |