-1

我使用 @action 装饰器为 DRF ViewSet 做了自定义可路由方法。

此溃败实现了多种方法(GET、POST、DELETE)。是否可以对每种方法有不同的描述,甚至可以为每种方法创建不同的 @extend_schema 定义?

乌罗什

4

2 回答 2

0

根据文档链接, @<function_name>.mapping.delete 将允许在多种方法中拆分函数(我的情况为 .delete)。现在正确记录每种方法是微不足道的。

于 2021-06-10T06:36:07.990 回答
0

您可以做到这一点,而无需覆盖各个方法

@extend_schema_view(
    list=extend_schema(description='view list description'),
    retrieve=extend_schema(description='view retrieve description'),
    extended_action=extend_schema(description='view extended action description'),
    raw_action=extend_schema(description='view raw action description'),
)
class XViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
   ...

您还可以使用@extend_schema任何@action或常规方法(例如retrieveget)。这也适用于拆分:

@extend_schema(request=UpdateSerializer)
@multi2.mapping.put
def multi2put(self, request, *args, **kwargs):
    ...
于 2021-11-01T16:07:41.807 回答