Nous devons implémenter l'API sur le site, choisir le framework REST. Coupe automatique fait par jeton (rest_framework.authtoken
)Django REST framework
de settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'Rest_framework.permissions.IsAdminUser',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'Rest_framework.authentication.TokenAuthentication',
),
}
view.py
@api_view(['GET', 'POST'])
def task_list(request):
if request.method == 'GET':
tasks = Task.objects.all()
serializer = TaskSerializer(tasks, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = TaskSerializer(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(
serializer.errors, status=status.HTTP_400_BAD_REQUEST)
donne un message d'erreur
"Detail": "Authentication credentials were not provided."
Comment corriger cette erreur et empêcher la méthode GET
vous pouvez mettre un peu si logique dans la vue de 'request.user.is_authenticated' et éviter d'entrer dans le bloc GET, etc ... cette façon –