Django Rest Framework "detail": "Метод \"GET\" не разрешен."

Я пытаюсь создать api с помощью django rest framework, но у меня возникла проблема.

@api_view(['PUT', ])
def api_update_blog_view(request, title):
    try:
        post = Post.objects.get(title=title)
    except Post.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'PUT':
        serializer = PostSerializer(post, data=request.data)
        data = {}

        if serializer.is_valid():
            serializer.save()
            data["success"] = "update successful"
            return Response (data=data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
urlpatterns = [

    path('<str:title>/update', api_update_blog_view, name="update"),


]

Когда я пытаюсь обновить пост, я вижу "деталь": "Метод "GET" не разрешен." ошибка. В чем проблема?

Это происходит, когда вы используете неправильный метод для вызова api. Например, вы определили метод route как PUT в вашем представлении, но обращаетесь к нему методом GET, отсюда и ошибка. В этом случае вам понадобится инструмент для тестирования api с правильными методами. Попробуйте использовать Postman или Thunder Client для VS кода.

Вернуться на верх