DjangoREST 使用带有序列化程序的 DELETE 和 UPDATE

Rob*_*ert 0 python django django-rest-framework

所以我遵循了DjangoREST framewok 站点上的快速入门指南,最终得到了以下代码:

序列化程序.py:

class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
    model = User
    fields = ('url', 'username', 'email', 'groups')


class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
    model = Group
    fields = ('url', 'name')
Run Code Online (Sandbox Code Playgroud)

视图.py:

class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows groups to be viewed or edited.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
Run Code Online (Sandbox Code Playgroud)

网址.py:

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
router.register(r'rooms', views.RoomViewSet)
router.register(r'devices', views.DeviceViewSet)
router.register(r'deviceTypes', views.DeviceTypeViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls',  namespace='rest_framework'))
]
Run Code Online (Sandbox Code Playgroud)

现在这一切正常,但我不知道如何删除或更新用户或组,似乎我只能添加用户和组并查看它们。所以我的问题是:如何修改此代码以删除/更新用户和组?

Say*_*yse 5

代码很好,你只需要分别使用PUTDELETE数据方法进行更新和删除(而不是GET/POST

您可以从代码示例看到了ModelViewSet文档

class SnippetViewSet(viewsets.ModelViewSet):
    """
    This viewset automatically provides `list`, `create`, `retrieve`,
    `update` and `destroy` actions.
Run Code Online (Sandbox Code Playgroud)

和文档 ModelViewSet

由ModelViewSet类提供的行动是.list().retrieve().create().update().partial_update(),和.destroy()