如何在Django Rest Swagger中添加图片上传字段

9

我正在使用Django rest swagger。将图片字段添加到序列化程序中,在rest框架UI中显示,但在Swagger UI中不显示。

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

但Swagger只显示一个简单的文本字段。而rest框架则显示一个上传字段。有人可以帮助我在Swagger UI中显示上传字段吗?


嘿,我也遇到了同样的问题,你找到解决方案了吗? - whale_steward
1
不,我已经使用了Django rest框架来上传文件。Django rest swagger在文件上传和使用键作为列表方面存在限制。 - Muneeb
3个回答

1

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

parameters:
    -
      name: file
      type: file

0

为什么不使用图像URL呢?这样做效果更好。ImageField给我带来了无尽的问题,而且你可以通过upload_photo.url调用图像,返回与普通文本中的upload_photo相同的值。


0

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

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)

之后您可以检查您的Swagger: 输入图像描述


你好,请详细说明这样做是如何解决问题的以及为什么要这样做? - Andreas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接