django-rest disalow获取ModelViewSet的请求

时间:2014-05-05 14:12:07

标签: django django-rest-framework

我只希望使用POST将数据发送到此api端点。有没有办法设置允许哪些请求方法?

class FooViewSet(viewsets.ModelViewSet):
    queryset = Foo.objects.all()
    serializer_class = FooSerializer

2 个答案:

答案 0 :(得分:1)

您是否需要整个ViewSet或正常GenericView是否足够?您可以使用CreateAPIView

示例:

class FooCreate(generics.CreateAPIView):
    Model = Foo
    serializer_class = FooSerializer

编辑:

如果确实需要使用ViewSet,则可以创建仅处理post个请求的自定义路由器。文档here,包括只读(即get)示例。

答案 1 :(得分:-2)

可能有更好的解决方案,但我通常做的是

if request.method != 'POST':
       return Http404

但这似乎有你需要的答案: https://docs.djangoproject.com/en/dev/topics/http/decorators/