Skip to content

Instantly share code, notes, and snippets.

@AlwxSin
Created October 27, 2017 11:01
Show Gist options
  • Save AlwxSin/32906c9003381fa2c6903f799263810a to your computer and use it in GitHub Desktop.
Save AlwxSin/32906c9003381fa2c6903f799263810a to your computer and use it in GitHub Desktop.
Get current user by endpoint `/api/users/me` in DjangoRestFramework
from rest_framework import viewsets
from rest_framework.request import Request
from rest_framework.response import Response
class UserViewSet(viewsets.ModelViewSet):
def retrieve(self, request: Request, *args, **kwargs):
"""
If provided 'pk' is "me" then return the current user.
"""
if kwargs.get('pk') == 'me':
return Response(self.get_serializer(request.user).data)
return super().retrieve(request, args, kwargs)
@techtana0x
Copy link

def get_object(self): if self.kwargs['pk'] == 'me': return self.request.user else: return super().get_object()
Will also allow you to PUT to /api/users/me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment