使用基于函数的观点,你可以限制一个视图一些HTTP方法,像这样:限制Django的REST框架一般以一组的HTTP方法
@api_view(["GET", "POST"])
def view(request):
...
这是整齐的,明确的。是否有一种本地方式可以在不诉诸于if self.request.method == ...
条件的情况下为通用视图执行相同操作?
使用基于函数的观点,你可以限制一个视图一些HTTP方法,像这样:限制Django的REST框架一般以一组的HTTP方法
@api_view(["GET", "POST"])
def view(request):
...
这是整齐的,明确的。是否有一种本地方式可以在不诉诸于if self.request.method == ...
条件的情况下为通用视图执行相同操作?
是,只需添加:http_method_names
像标准的Django视图:
例:
class MyView(ListAPIView):
http_method_names = ['get', 'post']
# ...
一个只需要设置http_method_names
属性对通用视图的类:
class MyListCreateView(generics.ListCreateAPIView):
http_method_names = ["get", "post"]
...
奇怪的是,http_method_names
没有相关记录,以班级为基础或通用的观点无论是在API指南Class Based Views也不Generic Views节。
但所有视图都是基于Django的视图,因此文档https://docs.djangoproject.com/en/1.8/ref/class-based-views/碱/#django.views.generic.base.View.http_method_names – WBAR
许多通用视图都会有这个在impliciltly builf列表视图只应GET。更新视图应该符合POST的。删除应接受删除... –
我只是想禁止“ListCreateAPIView”的选项 –