我正在使用Django rest swagger。将图片字段添加到序列化程序中,在rest框架UI中显示,但在Swagger UI中不显示。
在序列化程序中添加以下字段。 upload_photo = serializers.ImageField( required=False)
但Swagger只显示一个简单的文本字段。而rest框架则显示一个上传字段。有人可以帮助我在Swagger UI中显示上传字段吗?
我正在使用Django rest swagger。将图片字段添加到序列化程序中,在rest框架UI中显示,但在Swagger UI中不显示。
在序列化程序中添加以下字段。 upload_photo = serializers.ImageField( required=False)
但Swagger只显示一个简单的文本字段。而rest框架则显示一个上传字段。有人可以帮助我在Swagger UI中显示上传字段吗?
对于文件字段,您可以覆盖该字段的YAML文档字符串:
parameters:
-
name: file
type: file
为什么不使用图像URL呢?这样做效果更好。ImageField给我带来了无尽的问题,而且你可以通过upload_photo.url调用图像,返回与普通文本中的upload_photo相同的值。
你应该像这样更改你的解析器:
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)