from django.shortcuts import render

# Create your views here.

from django.shortcuts import render
from django.contrib.auth import login, logout
from django.contrib.auth.models import User
from rest_framework import viewsets
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework.views import APIView

# Create your views here.

from . import serializers, permissions, authenticators, models

class UserView(viewsets.ModelViewSet):
    serializer_class = serializers.UserSerializer
    model = User

    def get_permissions(self):
        # allow non-authenticated user to create
        return (AllowAny() if self.request.method == 'POST'
                else permissions.IsStaffOrTargetUser()),

class AuthView(APIView):
    authentication_classes = (authenticators.QuietBasicAuthentication,)

    def post(self, request, *args, **kwargs):
        login(request, request.user)
        return Response(serializers.UserSerializer(request.user).data)

    def delete(self, request, *args, **kwargs):
        logout(request)
        return Response()

Update the models for Auth and User.
Update the models for Auth and User.

  from django.shortcuts import render
+ from django.contrib.auth import login, logout
+ from django.contrib.auth.models import User
+ from rest_framework import viewsets
+ from rest_framework.permissions import AllowAny
+ from rest_framework.response import Response
+ from rest_framework.views import APIView
  
  # Create your views here.
  
+ from . import serializers, permissions, authenticators, models
+ 
+ class UserView(viewsets.ModelViewSet):
+     serializer_class = serializers.UserSerializer
+     model = User
+ 
+     def get_permissions(self):
+         # allow non-authenticated user to create
+         return (AllowAny() if self.request.method == 'POST'
+                 else permissions.IsStaffOrTargetUser()),
+ 
+ class AuthView(APIView):
+     authentication_classes = (authenticators.QuietBasicAuthentication,)
+ 
+     def post(self, request, *args, **kwargs):
+         login(request, request.user)
+         return Response(serializers.UserSerializer(request.user).data)
+ 
+     def delete(self, request, *args, **kwargs):
+         logout(request)
+         return Response()
+ 
Update the models for Auth and User.
## Code Before:
from django.shortcuts import render

# Create your views here.

## Instruction:
Update the models for Auth and User.
## Code After:
from django.shortcuts import render
from django.contrib.auth import login, logout
from django.contrib.auth.models import User
from rest_framework import viewsets
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework.views import APIView

# Create your views here.

from . import serializers, permissions, authenticators, models

class UserView(viewsets.ModelViewSet):
    serializer_class = serializers.UserSerializer
    model = User

    def get_permissions(self):
        # allow non-authenticated user to create
        return (AllowAny() if self.request.method == 'POST'
                else permissions.IsStaffOrTargetUser()),

class AuthView(APIView):
    authentication_classes = (authenticators.QuietBasicAuthentication,)

    def post(self, request, *args, **kwargs):
        login(request, request.user)
        return Response(serializers.UserSerializer(request.user).data)

    def delete(self, request, *args, **kwargs):
        logout(request)
        return Response()
