【问题标题】:How to limit actions in django rest framework如何限制django rest框架中的动作
【发布时间】:2015-11-09 12:11:52
【问题描述】:

我正在使用具有多个操作(检索、列出、创建等...)的视图集。我还使用 swagger 来清晰地了解我的 API。问题是它充满了未使用的方法(PATCH、PUT、DELETE),而且它弄乱了视图。

我已尝试在我的视图集中执行此操作:allowed_methods = ('GET','POST',)

swagger 仍然有所有这些未使用的方法。我怎样才能改变这种行为?是否有另一种方法来限制视图集中的操作数量?或者问题可能出在大摇大摆的一边?

【问题讨论】:

    标签: python django rest django-rest-framework swagger


    【解决方案1】:

    您需要更准确地组合视图集视图以摆脱它们。

    默认模型视图集是:

    class ModelViewSet(
            mixins.CreateModelMixin,
            mixins.RetrieveModelMixin,
            mixins.UpdateModelMixin,
            mixins.DestroyModelMixin,
            mixins.ListModelMixin,
            GenericViewSet):
        pass
    

    因此,如果您只想说出列表和创建方法,那就是:

    class MyViewSet(
            mixins.CreateModelMixin,
            mixins.ListModelMixin,
            GenericViewSet):
        serializer_class = ....
        queryset = ....
    

    【讨论】:

    • 请注意,如果您需要将请求限制为仅GET,则ViewSet 类下有ReadOnlyModelViewSet() 方法。
    猜你喜欢
    • 2021-06-07
    • 2022-01-13
    • 2019-12-29
    • 1970-01-01
    • 2021-01-09
    • 2017-04-13
    • 2016-11-20
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多