Представление на основе функции DRF HTTP 405 Method Not Allowed

Я пытаюсь использовать представление на основе функций для создания нового объекта, но выдает такую ошибку:

HTTP 405 Метод не разрешен Разрешить: GET, OPTIONS Content-Type: application/json Vary: Accept

{ "detail": "Метод "POST" не разрешен". }

Я прочитал много вопросов на stackoverflow, но ни один из них не сработал для меня, вот мой код:

@api_view(['POST'])
@permission_classes([permissions.IsAuthenticated])
def todo_create(request,format=None):
    if request.method == 'POST':
        serializer = TodoSerializer(data=request.data)
        if serializer.is_valid():
            serializer.owner = request.user
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors)

урлы

urlpatterns = [
path('',todo_links,name='todo_links'),
path('lists/',todo_lists,name='todo_lists'),
path('create/',todo_create,name='todo_create'),


path('lists/<int:pk>/',todo_detail,name='todo_detail'),
path('lists/<int:pk>/update',todo_update,name='todo_update'),
path('lists/<int:pk>/delete',todo_delete,name='todo_delete'),

path('data',template,name='template'),

]

основной url

from snippet.views import api_root
urlpatterns = [
path('admin/', admin.site.urls),
path('auth/',include('django.contrib.auth.urls')),
path('posts/',include('post.urls')),
path('api-auth/',include('rest_framework.urls')),
path('',include('snippet.urls')),
path('todo/',include('todos.urls'),name='todos-app'),

]

my settings.py

REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
],
'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE':1    
}

serializers.py

class TodoSerializer(serializers.HyperlinkedModelSerializer):
owner = serializers.HyperlinkedIdentityField(view_name='user-detail',format='html')    
class Meta:
    model = Todo
    fields = ['id','owner','title','describe','complete']

my models.py

class Todo(models.Model):
    owner = models.ForeignKey(User,on_delete=models.CASCADE,related_name='todos')
    title = models.CharField(max_length=255)
    describe = models.TextField(null=True,blank=True)
    complete = models.BooleanField(default=False)    
    def __str__(self):
        return self.title
<
Вернуться на верх