首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >drf-yasg隐藏标题属性

drf-yasg隐藏标题属性
EN

Stack Overflow用户
提问于 2021-10-26 09:57:22
回答 1查看 265关注 0票数 0

因此,如图中所示,是否有任何方法隐藏“title”属性foreach项?我不太明白这些标题的目的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-01 14:34:52

基于drf_yasg 文档 ,您应该首先定义一个类,为每个API定义一个没有标题的模式,如下所示:

代码语言:javascript
复制
from drf_yasg.inspectors import FieldInspector

class NoSchemaTitleInspector(FieldInspector):
   def process_result(self, result, method_name, obj, **kwargs):
      # remove the `title` attribute of all Schema objects
      if isinstance(result, openapi.Schema.OR_REF):
         # traverse any references and alter the Schema object in place
         schema = openapi.resolve_ref(result, self.components)
         schema.pop('title', None)

         # no ``return schema`` here, because it would mean we always generate
         # an inline `object` instead of a definition reference

      # return back the same object that we got - i.e. a reference if we got a reference
      return result

现在您应该定义一个类来使用drf_yasg 自动删除标题,因此您需要定义如下所示的类:

代码语言:javascript
复制
class NoTitleAutoSchema(SwaggerAutoSchema):
   field_inspectors = [NoSchemaTitleInspector] + swagger_settings.DEFAULT_FIELD_INSPECTORS

在这里,像下面的片段一样,您可以从API视图集中隐藏所有标题属性:

代码语言:javascript
复制
class ArticleViewSet(viewsets.ModelViewSet):
   swagger_schema = NoTitleAutoSchema
   ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69721037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档