2015-09-06 25 views
0

使用基于函数的观点,你可以限制一个视图一些HTTP方法,像这样:限制Django的REST框架一般以一组的HTTP方法

@api_view(["GET", "POST"]) 
def view(request): 
    ... 

这是整齐的,明确的。是否有一种本地方式可以在不诉诸于if self.request.method == ...条件的情况下为通用视图执行相同操作?

+0

许多通用视图都会有这个在impliciltly builf列表视图只应GET。更新视图应该符合POST的。删除应接受删除... –

+0

我只是想禁止“ListCreateAPIView”的选项 –

回答

1

是,只需添加:http_method_names像标准的Django视图:

例:

class MyView(ListAPIView): 
    http_method_names = ['get', 'post'] 
    # ... 
1

一个只需要设置http_method_names属性对通用视图的类:

class MyListCreateView(generics.ListCreateAPIView): 
    http_method_names = ["get", "post"] 
    ... 

奇怪的是,http_method_names没有相关记录,以班级为基础或通用的观点无论是在API指南Class Based Views也不Generic Views节。

+0

但所有视图都是基于Django的视图,因此文档https://docs.djangoproject.com/en/1.8/ref/class-based-views/碱/#django.views.generic.base.View.http_method_names – WBAR