django - drf-yasg 自定义 SwaggerUIRenderer

标签 django drf-yasg

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

我发现我可以使用 block extra_headextra_stylesextra_body 扩展 drf_yasg/swagger-ui.html code>、extra_scripts,如果需要,甚至可以覆盖其他 block 。

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

我开始了

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

我想在 get_schema_view 中将 SwaggerUIRenderer 替换为 MyCustomSwaggerUIRenderer 但不明白如何/在何处执行此操作而不明确尝试枚举所有rest_framework.views.APIView 的某些子类中也需要其他渲染器,这看起来很复杂。

感谢指向文档或示例的指针。我已经读过 https://drf-yasg.readthedocs.io/没有成功。

最佳答案

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

引用:https://github.com/axnsan12/drf-yasg/issues/294#issuecomment-464461773

关于django - drf-yasg 自定义 SwaggerUIRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62253735/

相关文章:

python - 使用通用换行符将 Django UploadedFile 处理为 UTF-8

python - 如何在Python中将特定文本搜索到二维数组中

python - Django allauth 没有检测到 user.is_authenticated

python - GeoDjango GEOSException 错误

python - 自定义路径参数解析drf-yasg和Django

django - drf-yasg Django Restframework Swagger 页面返回空白页面,并使用 django 登录 href 链接

python - "http method not bound to view"在 drf_yasg 中记录基于类的 View 时