Django REST ImageField Serializer关闭文件

时间:2017-08-31 05:17:12

标签: python django

我想将大量图片POST发送到服务器 并且相同的图像将上传到Django 1.11和Django REST 3.6.1中的多个记录

for image in images:
   data = {
                'type': image_type,
                'attribute': {
                    'dealer_id': int(dealer_id),
                },
                'defaults': {
                    'created_user': user,
                    'updated_user': user,
                    'image': image,
                }
            }
   for shop_id in shops:
            DisplayImage.objects.update_or_create(**data)

第一张图片不会引发错误。在调试期间,我尝试查询DisplayImage实例,但它返回空的queryset。这不是问题,因为ORM可能是懒惰提交。

我遇到的错误是I/O Operation on closed file

更新
保持社区的关注。我会在处理这个问题时不断添加信息,直到我放弃为止。

data == copy_data
Out[2]: False
data
Out[3]: 
{'attribute': {'dealer_id': 2},
 'created_user': <SimpleLazyObject: <User: admin>>,
 'image': <InMemoryUploadedFile: コーティング_車内清掃_室内清掃+除菌抗菌消臭_内容.png (image/png)>,
 'type': 1,
 'updated_user': <SimpleLazyObject: <User: admin>>}
copy_data
Out[4]: 
{'attribute': {'dealer_id': 2},
 'created_user': <User: admin>,
 'image': <InMemoryUploadedFile: コーティング_車内清掃_室内清掃+除菌抗菌消臭_内容.png (image/png)>,
 'type': 1,
 'updated_user': <User: admin>}

我曾尝试copy.deepcopy(data)这是dict我要创建DisplayImage的实例,但是当第一个进入数据库时​​,下一个实例已关闭!
我知道它必须是不同的对象,这就是为什么我通过data == copy_data检查值并返回False

0 个答案:

没有答案