我使用 @action 装饰器为 DRF ViewSet 做了自定义可路由方法。
此溃败实现了多种方法(GET、POST、DELETE)。是否可以对每种方法有不同的描述,甚至可以为每种方法创建不同的 @extend_schema 定义?
乌罗什
我使用 @action 装饰器为 DRF ViewSet 做了自定义可路由方法。
此溃败实现了多种方法(GET、POST、DELETE)。是否可以对每种方法有不同的描述,甚至可以为每种方法创建不同的 @extend_schema 定义?
乌罗什
根据文档链接, @<function_name>.mapping.delete 将允许在多种方法中拆分函数(我的情况为 .delete)。现在正确记录每种方法是微不足道的。
您可以做到这一点,而无需覆盖各个方法
@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
或常规方法(例如retrieve
,get
)。这也适用于拆分:
@extend_schema(request=UpdateSerializer)
@multi2.mapping.put
def multi2put(self, request, *args, **kwargs):
...