Метод \"POST\" не разрешен django
Я получаю ошибку как Метод "POST" не разрешен.
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url('', views.listTutorials),
url('create/', views.createTutorial),
url('<str:pk>/update/', views.updateTutorial),
]
views.py
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from .serializers import TutorialSerializer
from .models import Tutorial
@api_view(['POST'])
def createTutorial(request):
serializer = TutorialSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@api_view(['PUT'])
def updateTutorial(request, pk):
tutorial = Tutorial.objects.get(pk=pk)
serializer = TutorialSerializer(tutorial, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_204_NO_CONTENT)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@api_view(['GET'])
def listTutorials(request):
tutorials = Tutorial.objects.all()
serializer = TutorialSerializer(tutorials, many=True)
return Response(serializer.data)
serializers.py
from rest_framework.serializers import ModelSerializer
from .models import Tutorial
class TutorialSerializer(ModelSerializer):
class Meta:
model = Tutorial
fields = '__all__'
models.py
from django.db import models
class Tutorial(models.Model):
title = models.CharField(max_length=70, blank=False, default='')
description = models.CharField(max_length=200,blank=False, default='')
published = models.BooleanField(default=False)
def __str__(self):
return self.title
project urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url('tutorials/', include('tutorials.urls'))
]
Теперь я использую POST запрос как
http://localhost:8000/tutorials/create/ с телом
{ "title": "Django framework", "description": "Изучение фреймворка django" } Но я получаю ошибку
{ "detail": "Метод "POST" не разрешен". }