无法进行 PUT 操作 -DjangoRESTFramework

Unable to do PUT operation -DjangoRESTFramework

我无法在 Django rest 框架中执行 PUT 操作,我能够 GET、POST、DELETE操作。

这是错误 我试过使用 @api_view 但也没有, 我主要参考 djangorestframework 网站

下面是我的代码:

serializers.py

from rest_framework import serializers
from snippets.models import Snippet
#from django.contrib.auth.models import *

class SnippetSerializer(serializers.ModelSerializer):
            class Meta:
                model = Snippet
                fields = ('id','title','code')

Models.py

from __future__ import unicode_literals
from django.db import models

# Create your models here.


class Snippet(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default='')
    code = models.CharField(max_length=100, blank=True, default='')


class Meta:
    ordering = ('created',)

Views.py

from rest_framework import viewsets
from rest_framework.decorators import api_view
from snippets.serializers import SnippetSerializer

    class SnippetViewSet(viewsets.ModelViewSet):
        """
        API endpoint that allows users to be viewed or edited.
        """
        queryset = Snippet.objects.all().order_by('id')
        serializer_class = SnippetSerializer

urls.py

rom django.conf.urls import url, include
from rest_framework import routers
from django.contrib import admin
from snippets import views




router = routers.DefaultRouter()
router.register(r'snippet', views.SnippetViewSet)


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),

]

查看 DefaultRouter 的文档,似乎 PUT 方法只能用于 {basename}-detail 类型的 URL。

当您直接在 /snippet url 不允许的地方使用它时。