问题标签 [drf-spectacular]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
588 浏览

python - drf-spectacular:向 HTTP_204 添加描述

这是我尝试过的,但我得到的是 在此处输入图像描述

0 投票
1 回答
91 浏览

django-rest-framework - 有没有办法覆盖生成的 drf api 模式的默认描述?

在使用 drf-yasg 或 drf-spectacular 时,<br /> 有没有办法覆盖示例图片中显示的默认描述,
或者 drf-yasg 或 drf-spectacular 是否为默认描述提供其他语言支持?

我尝试了对 drf-spectacular 的 i18n 支持,但我认为这不是为了这个问题。
并且更改 django 的 language_code 设置是行不通的。

我非常感谢您的帮助。
样品 1 样品2

0 投票
1 回答
654 浏览

python - 在 drf-spectacular 设置中传递 Swagger-UI url

我有一个项目,Django 2.x.我想使用drf-spectacular添加自动文档。我drf-spectacular=0.15.1目前正在使用。

我在 Docker 中运行我的项目,我的 api 容器的构建上下文设置为 api 项目的根文件夹。

当我运行命令生成模式时./manage.py spectacular --file schema.yml,脚本会schema.yml在我的 api 项目的根目录中创建一个文件,但我的 Djangosettings.py位于下一层,位于名为my_website. 项目的结构是这样的:

因此,在settings.py我添加了特定设置以告诉 Swagger-UI 从何处获取架构,如drf-spectacular文档中所述:

一旦我尝试访问项目中的 swagger-ui url 以检查架构是否已加载到那里,我会收到错误消息:**Fetch error** Not Found schema.yml. 我尝试以各种方式传递架构 url,例如通过相对 url ../schema.yml,但这也不起作用。也许有人可以让我知道我做错了什么。

谢谢!

0 投票
1 回答
794 浏览

django-rest-framework - 将 FileField/ImageField 与 Swagger UI 和 drf-spectacular 一起使用

我有一个 Django REST Framework 项目,它使用ModelViewSet为包含FileField.

我在这里分享了一个演示这个问题的 Django 项目的完整示例。但总结一下关键组件:

模型.py

视图.py

网址.py

settings.pyREST_FRAMEWORK仅配置):

要求.txt

我正在使用drf-spectacular生成可浏览的 Swagger-UI 文档来记录 API。

问题是FileFieldSwagger-UI 中的输入是string输入,并且没有提供设置文件的选项:

在此处输入图像描述

我想要一个文件输入,我可以在其中选择一个将发送到 API 的文件。

我的问题是:如何配置 DRF 或 drf-spectacular 以显示该字段?

0 投票
1 回答
594 浏览

django-rest-framework - drf-spectacular:如何在 Swagger 的示例部分显示主键

我试图在 Swagger 的示例部分中显示主键,我使用的是drf-spectacular,我的代码如下所示:

序列化器.py

视图.py

仅显示名称字段:

在此处输入图像描述

我发现的唯一解决方案是使用内联序列化程序,这不是理想的解决方案,因为如果我更新我的书序列化程序,我必须记住也要更新这个内联序列化程序。我想知道是否有更好的方法来做到这一点。

0 投票
1 回答
1786 浏览

django - DRF 壮观没有发现自定义身份验证扩展类

当从 rest_framework_simplejwt.authentication.JWTAuthentication drf-spectacular swagger-ui 扩展一个新的令牌认证类时,授权按钮消失并且没有办法添加令牌持有者,我猜当你子类化它时会出错。
重现步骤:
首先,创建一个 Django 项目,其中安装了 rest 框架和 drf-spectacular 和简单的 jwt,并使用文档指导进行配置。到 /swagger-ui/ 它工作正常。
然后创建一个 JWTAuthentication 的子类,如下所示:

并在您的设置中:

现在如果你去 /swagger-ui/ 那里没有授权按钮!!!我怎样才能解决这个问题?
我什至尝试创建一个 AuthenticationExtension,例如:

但是没有办法在任何地方、互联网或文档中注册它!覆盖身份验证类时如何修复授权按钮?
编辑:做 JPG 所说的并在设置中导入扩展名:

引发异常:

0 投票
1 回答
2050 浏览

python - drf-spectacular:使用@extend_schema 指定空有效负载

考虑到我有一个简单的观点,

当我渲染架构时,我得到了以下错误响应,

错误 #0:EmptyPayloadAPI:无法猜测序列化程序。这是对 APIViews 的优雅回退处理。如果视图在您的控制之下,请考虑使用 GenericAPIView 作为视图基类。暂时忽略视图。

那么,我如何告诉@extend_schema装饰器我不打算将任何内容作为有效负载传递?

0 投票
2 回答
45 浏览

drf-spectacular - 用于路由的自定义@action 中方法的不同描述

我使用 @action 装饰器为 DRF ViewSet 做了自定义可路由方法。

此溃败实现了多种方法(GET、POST、DELETE)。是否可以对每种方法有不同的描述,甚至可以为每种方法创建不同的 @extend_schema 定义?

乌罗什

0 投票
1 回答
1559 浏览

python - drf-spectacular 的 extend_schema 不起作用

我最近从我的项目迁移drf-yasgdrf-spectacular,但@extend_schema装饰器似乎没有向我生成的模式添加任何信息:

  • views.py

这是生成的架构的相关部分:

这里有一些关于 context 的附加信息:

  • urls.py
  • SPECTUACULAR_SETTINGS
  • 版本:
0 投票
0 回答
88 浏览

django - drf-壮观的反向相关对象

我对架构中的反向相关对象有疑问。

序列化器:

视图尚未准备好,因为我无法上传文件:

主要问题是这个反向相关的对象(文件)被渲染错误。

图片

而不是某种文件输入数组,我得到了 json 数组。我应该怎么做才能修复它?我知道我可以用另一种方式制作它,比如只制作 files = serializer.ListField(child=FileField...) 并保存这些文件,即使没有任何序列化程序,但我想以某种正确的方式做到这一点 =/