【发布时间】:2019-03-24 23:41:31
【问题描述】:
我可以使用以下代码上传单个图像。如果我选择多张图片,则只有所选图片中的最后一张图片会被上传。
模型.py
class Image(models.Model):
property_id = models.ForeignKey(
'properties.Address',
null=False,
default=1,
on_delete=models.CASCADE
)
image = models.ImageField(upload_to=directory_path)
序列化器.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = (
'property_id',
'image'
)
views.py
class ImageView(APIView):
parser_classes = (MultiPartParser, FormParser)
def get(self, request):
all_images = Image.objects.all()
serializer = ImageSerializer(all_images, many=True)
return JsonResponse(serializer.data, safe=False)
def post(self, request, *args, **kwargs):
file_serializer = ImageSerializer(data=request.data)
if file_serializer.is_valid():
file_serializer.save()
return Response(file_serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(file_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我对 Django 有点陌生。我想遍历 request.data 中收到的图像数组,谁能告诉我该怎么做?
【问题讨论】:
-
试试
file_serializer = ImageSerializer(data=request.FILES, many=isinstance(request.FILES, list)) -
不,它不起作用。此外,它将所有图像上传到同一个属性文件夹
标签: django django-rest-framework image-uploading