I.J*_*dze 7 python django python-3.x django-rest-framework drf-yasg
我正在尝试从swagger(使用drf-yasg)进行上传文件输入,但是当我使用MultiPartParser类时,它给了我以下错误:
drf_yasg.errors.SwaggerGenerationError: FileField is supported only in a formData Parameter or response Schema
Run Code Online (Sandbox Code Playgroud)
我的看法:
drf_yasg.errors.SwaggerGenerationError: FileField is supported only in a formData Parameter or response Schema
Run Code Online (Sandbox Code Playgroud)
我的序列化器:
class AddExperience(generics.CreateAPIView):
parser_classes = [MultiPartParser]
permission_classes = [IsAuthenticated]
serializer_class = DoctorExperienceSerializer
Run Code Online (Sandbox Code Playgroud)
我也尝试过FormParser,但它仍然给我同样的错误。另外:FileUploadParser解析器但它的工作原理如下JsonParser:
( ) 2 不支持多文件上传(参见issue OpenAPISchema# 254);但支持它(您可以在实时 swagger 编辑器上使用此 YML 规范(请参阅此结果))。OASOAS 3
说到真正的问题,drf-yasg 的文档中有一个部分,
如果您希望向新项目添加 Swagger/OpenAPI 支持,您可能需要看看 drf-spectaulous,它是一个积极维护的新库,它与该项目的大部分目标相同,同时使用 OpenAPI 3.0 模式。
OpenAPI 3.0 在可描述的 API 类型方面比 2.0 提供了更多的灵活性。drf-yasg 不太可能很快(如果有的话)获得对 OpenAPI 3.0 的支持。
这意味着该软件包drf-yasg不支持OAS3“多个文件上传”功能。
您可以考虑从 迁移drf-yasg到drf-spectacular。但是,还要注意的是,也以不同的方式drf-spectacular处理 FileUpload 。
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |