将Django REST框架通用视图限制为一组HTTP方法

时间:2015-09-06 19:54:23

标签: python django rest django-rest-framework

使用基于函数的视图,您可以将视图限制为某些HTTP方法,如:

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

这是整洁和明确的。是否有一种原生方式可以在不诉诸if self.request.method == ...条件的情况下对通用视图执行相同的操作?

2 个答案:

答案 0 :(得分:1)

只需要在通用视图的类中设置http_method_names属性:

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

奇怪的是,http_method_names未在API指南的Class Based ViewsGeneric Views部分中与基于类的视图或通用视图相关联。

答案 1 :(得分:1)

是的,只需在标准的Django View中添加:class MyView(ListAPIView): http_method_names = ['get', 'post'] # ...

示例:

window.loadFeatures = function(httpOutPut){
    vectorSource.addFeatures(geojsonFormat.readFeatures(response))
    };