3

我想自定义 drf_yasg 生成的文档的样式(字体、颜色、徽标等)。

我看到我可以drf_yasg/swagger-ui.html使用块extra_headextra_stylesextra_body、进行扩展,extra_scripts如果需要,甚至可以覆盖其他块。

我不清楚的是我如何指向我的扩展模板swagger-ui.html

我从

class MyCustomSwaggerUIRenderer(SwaggerUIRenderer):
    template = 'api/custom-swagger-ui.html'

我想SwaggerUIRendererMyCustomSwaggerUIRendererin替换,get_schema_view但不明白如何/在哪里做它而不明确地尝试枚举在某些子类中也需要的所有其他渲染器rest_framework.views.APIView,这似乎很复杂。

对文档或示例的指针表示赞赏。我已经阅读了https://drf-yasg.readthedocs.io/没有成功。

4

1 回答 1

2

您不必为此创建自定义类。您只需要drf-yasg在新的或现有的应用程序下创建一个具有名称的目录,然后swagger-ui.html使用您的自定义模板在其下方放置一个具有该名称的文件。例如,如果您已经有一个名为 的应用程序,则api可以将其放在api/templates/drf-yasg/swagger-ui.html. 确保api之前drf-yasg在 INSTALLED_APPS 中指定了应用程序。

参考https ://github.com/axnsan12/drf-yasg/issues/294#issuecomment-464461773

于 2021-08-07T15:44:27.223 回答