drf-yasg 隐藏标题 属性

drf-yasg hide title property

所以如图所示,有什么方法可以隐藏每个项目的 'title' 属性 吗?我真的不明白这些标题的目的。

基于drf_yasg documentation 你应该首先定义一个class来得到一个没有标题的模式 对于每个 API 你可以定义一个 class 如下:

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

现在您应该定义 a class 以使用 drf_yasg 自动删除标题 ,因此您需要定义如下所示的 class:

class NoTitleAutoSchema(SwaggerAutoSchema):
   field_inspectors = [NoSchemaTitleInspector] + swagger_settings.DEFAULT_FIELD_INSPECTORS

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

class ArticleViewSet(viewsets.ModelViewSet):
   swagger_schema = NoTitleAutoSchema
   ...