Django Rest Framework:允许 Patch,但不允许 Put

Ibo*_*lit 5 django django-rest-framework

我想允许PATCHing 我的模型实例,但不PUTting 它们,并且我只想允许更新某些字段。我正在使用 Django-rest-framework,并且我正在使用ViewSets. 如果我继承UpdateModelMixin,我不可避免地会同时得到PATCHPUT

我知道我可以编写自己的partial_update实现,但是,如果有的话,我更喜欢使用更惯用的方式。简而言之,我的问题是:

有没有办法允许PATCH方法,但不允许PUT

有没有一种方法可以限制方法中允许更新的字段范围,PATCH而无需编写专用的“输入”序列化器?

nev*_*ner 8

您可以覆盖视图集的http_method_names属性:

class MyViewSet(viewsets.ModelViewSet):
    http_method_names = ['get', 'post', 'patch', 'delete']
Run Code Online (Sandbox Code Playgroud)