views.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.contrib.auth import get_user_model
  2. from django.contrib.auth.models import User
  3. from rest_framework import viewsets, permissions
  4. from rest_framework.generics import CreateAPIView
  5. from rest_framework.response import Response
  6. from rest_framework.views import APIView
  7. from apps.user.serializers import UserSerializer, CurrentUserSerializer
  8. class UserViewSet(viewsets.ModelViewSet):
  9. """
  10. API endpoint that allows users to be viewed or edited.
  11. """
  12. queryset = User.objects.all().order_by('-date_joined')
  13. serializer_class = UserSerializer
  14. class CreateUserView(CreateAPIView):
  15. model = get_user_model()
  16. permission_classes = [
  17. permissions.AllowAny # Or anon users can't register
  18. ]
  19. serializer_class = UserSerializer
  20. class CurrentUserView(APIView):
  21. """
  22. """
  23. def get(self, request):
  24. user = User.objects.get(pk=request.user.pk)
  25. serializer_context = {
  26. 'request': request,
  27. }
  28. serializer = CurrentUserSerializer(user, context=serializer_context)
  29. # return Response({"user": serializers.serialize('json', [ user, ])})
  30. return Response(serializer.data)