如何解决DRF -django rest framework API 多文件通过API上传
我正在尝试将多张图片上传到单个帖子,目前我只能上传一张图片并通过 API 获得确认。我怎样才能做到这一点多上传?
我的models.py
from django.db import models
# Create your models here.
class UploadedImage(models.Model):
img = models.ImageField('Uploaded Image',upload_to='images') # stores uploaded image
dt_created = models.DateTimeField(auto_Now_add=True,verbose_name='Created')
我的serializers.py
from rest_framework import serializers
from .models import UploadedImage
class UploadedImageSerializer(serializers.ModelSerializer):
class Meta:
model = UploadedImage
fields = ('pk','img','dt_created')
我的viewsets.py
from django.shortcuts import render
from rest_framework import viewsets
from imageUpload.serializers import UploadedImageSerializer
from imageUpload.models import UploadedImage
# Create your views here.
class UploadImageViewset(viewsets.ModelViewSet):
queryset = UploadedImage.objects.all()
serializer_class = UploadedImageSerializer
解决方法
你可以这样做
我的模型.py
from django.db import models
# Create your models here.
class UploadedImage(models.Model):
img = models.ImageField('Uploaded Image',upload_to='images') # stores uploaded image
dt_created = models.DateTimeField(auto_now_add=True,verbose_name='Created')
my serializers.py
from rest_framework import serializers
from .models import UploadedImage
class UploadImagesSerializer(serializers.Serializer):
# here we limit how maximum the image is
img = serializers.ImageField()
img1 = serializers.ImageField(required=False)
img2 = serializers.ImageField(required=False)
def create(self,validated_data):
create = YourModel(img=validated_data.get("img"))
create.save()
if validated_data.get("img1"):
create = YourModel(img=validated_data.get("img1"))
create.save()
....
return create
class UploadedImageSerializer(serializers.ModelSerializer):
class Meta:
model = UploadedImage
fields = ('pk','img','dt_created')
我的viewsets.py
from django.shortcuts import render
from rest_framework import viewsets
from imageUpload.serializers import UploadedImageSerializer,UploadImagesSerializer
from imageUpload.models import UploadedImage
from rest_framework import parsers
# Create your views here.
class UploadImageViewset(viewsets.ModelViewSet):
queryset = UploadedImage.objects.all()
serializer_class = UploadedImageSerializer
parser_class = [parsers.JSONParser,parsers.MultiPartParser,]
def create(self,request):
serializer = UploadImagesSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(...)
return Response(...)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。