frostblooded

Untitled

Apr 3rd, 2017
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.17 KB | None | 0 0
  1. from rest_framework import viewsets, status
  2. from rest_framework.authtoken.models import Token
  3. from rest_framework.decorators import detail_route, authentication_classes, api_view
  4. from rest_framework.response import Response
  5.  
  6. from api.models import User
  7. from api.serializers import UserSerializer
  8.  
  9.  
  10. class UserViewSet(viewsets.ModelViewSet):
  11.     queryset = User.objects.all()
  12.     serializer_class = UserSerializer
  13.  
  14.     @detail_route(methods=['put'])
  15.     def follow(self, request, pk=None): # follows a given user
  16.         pass
  17.  
  18.     @detail_route(methods=['put'])
  19.     def unfollow(self, request, pk=None): # unfollows a given user
  20.         pass
  21.  
  22.     # Override create to return token
  23.     @api_view(['POST'])
  24.     @authentication_classes([])
  25.     def create(self, request, *args, **kwargs):
  26.         serializer = self.get_serializer(data=request.data)
  27.         serializer.is_valid(raise_exception=True)
  28.         user = serializer.save()
  29.         headers = self.get_success_headers(serializer.data)
  30.         response = serializer.data
  31.         response['access_token'] = Token.objects.get(user=user).key
  32.         return Response(response, status=status.HTTP_201_CREATED, headers=headers)
Advertisement
Add Comment
Please, Sign In to add comment