【问题标题】:How to add image upload field in django rest swagger如何在 django rest swagger 中添加图片上传字段
【发布时间】:2014-08-29 09:41:50
【问题描述】:

我正在使用 Django rest swagger。向序列化程序添加了一个图像文件,该图像文件出现在 rest 框架 UI 中。但不会出现在 Swagger UI 中。

在序列化程序中添加了以下字段。 upload_photo = serializers.ImageField(required=False)

但是大摇大摆地显示一个简单的文本字段。而休息框架显示一个上传字段。谁能帮我在 swagger ui 中显示上传字段

【问题讨论】:

  • 嘿,我也遇到了同样的问题,你找到解决办法了吗?
  • 不,我使用 Django rest 框架上传文件。 Django rest swagger ha 限制文件上传和使用键作为列表

标签: django rest swagger


【解决方案1】:

对于文件字段,您可以覆盖该字段的 YAML 文档字符串:

parameters:
    -
      name: file
      type: file

【讨论】:

    【解决方案2】:

    为什么不使用图片 url 反而效果更好,ImageField 给了我无穷无尽的问题,你可以通过 upload_photo.url 调用图片返回与普通文本中的 upload_photo 相同的值

    【讨论】:

      【解决方案3】:

      你应该像这样改变你的解析器:

      from rest_framework import permissions, viewsets
      from rest_framework.mixins import (CreateModelMixin, DestroyModelMixin,
                                         ListModelMixin, RetrieveModelMixin)
      from rest_framework.parsers import FormParser, MultiPartParser
      from .models import Customer
      from .permissions import CustomerPermission
      from .serializer import CustomerSerializer
      
      
      class CustomerViewSet(CreateModelMixin, ListModelMixin, RetrieveModelMixin, 
                            DestroyModelMixin, viewsets.GenericViewSet):
          permission_classes = [CustomerPermission]
          queryset = Customer.objects.all()
          serializer_class = CustomerSerializer
          parser_classes = (FormParser, MultiPartParser)
      

      之后你可以检查你的招摇:

      【讨论】:

      • 您好,您能否详细说明一下如何以及为什么会解决此问题?
      猜你喜欢
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 2021-07-26
      • 2019-06-01
      • 2015-08-06
      • 2012-08-06
      相关资源
      最近更新 更多