django - 如何从 Flutter 上传多个图像 django DRF
问题描述
我有模型 Car 和 CarImage 以及序列化程序:
class Car(models.Model):
title = models.CharField('title',max_length=200)
def __str__(self):
return self.title
class CarImage(models.Model):
car = models.ForeignKey(Car,on_delete=models.CASCADE,related_name='car_image',related_query_name='car_image')
image = models.ImageField(upload_to='test_media/',null=True,blank=True,)
def __str__(self):
return f'{self.id} Image'
class Car_Image_Serializer(serializers.ModelSerializer):
class Meta:
model = models.CarImage
fields = ('id','image')
class Car_Serializer(serializers.ModelSerializer):
car_image = Car_Image_Serializer(many=True,required=False)
class Meta:
model = models.Car
fields = ('title','car_image')
def create(self, validated_data):
if 'car_image' in validated_data:
car_image= validated_data.pop('car_image')
car_instance= models.Car.objects.create(**validated_data)
for img in car_image:
models.CarImage.objects.create(car=car_instance,image=img)
return car_instance
if 'car_image' not in validated_data:
car_instance= models.Car.objects.create(**validated_data)
return car_instance
在颤动中,我使用库 Dio 发送图像:
FormData formData1 = FormData.fromMap({
'title': 'test',
'car_image': [
{
'car_image': await MultipartFile.fromFile(
image_path,
filename: fileName,
)
}
]
});
var response = await dio.post(
url,
data: formData1,
);
我得到 OrderedDict()
{ "title": "test", "car_image": [ { "id": 7, "image": "https://temike.pythonanywhere.com/media/OrderedDict()" } ] }
解决方案
推荐阅读
- javascript - 动态img src
- view - 如何在文档库中显示 AllItems.aspx 视图默认值
- android - 删除外部SD卡中的文件时如何再次获得权限
- javascript - 如何在只读模式下启用 ckeditor 插件?
- javascript - java脚本中createusermethod中的firebase.auth()错误
- python - 当从 YAML 传递数据以连接 MYSQL 数据库时,Python 抛出“ProgrammingError: 1045”
- c++ - 如何在三元条件运算符中添加换行符和连接?: 在 C++ 中
- java - 正则表达式模式在 Java 中抛出 PatternSyntaxException
- assembly - st8s013f2控制器中的stm8地址范围错误读取访问
- c# - 执行 DbCommand 失败 - 引入 FOREIGN KEY 约束