在Django Rest API框架中仅允许更新
我正在做一个非常简单的应用程序,里面只有一个模型,里面有几个字段。我希望这些模型只能通过/admin页面来创建或删除(也就是使用标准的Django管理框架),而让其他的API框架只能对这些对象进行修改。
有没有什么简单的方法可以实现这个呢?
3 个回答
0
如果你只是想更新对象,可以使用 UpdateApiView。通过这个视图,你可以为你的模型创建一个更新功能(使用PUT方法)。如果有任何疑问,可以查看 DRF文档。
2
只需要创建一个视图集,使用更新/获取模型的混合功能。
from rest_framwork import viewsets, mixins
class FooViewSet(mixens.RetrieveModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
model = Foo
queryset = Foo.objects.all()
serializer_class = FooSerializer
这样做只会给你一个API接口,用来获取或更新你模型的某个实例。
3
你需要把 http_method_names
设置成下面这样:
class WebViewSet(mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
model = WebTransaction
http_method_names = ('get', 'put')