ValueError:对关闭的文件执行I / O操作。 Python,Django,Boto3

时间:2019-04-16 13:55:11

标签: python django boto3

我的views.py中有一个post方法:

x = next(next(filter(lambda x:isinstance(x, int), i)) for i in my_list if i[0] == 'Queens')
print(x) # -> 0

它将创建一个包含img文件的新文章。我保存在AWS S3存储桶中的图像文件。使用 new_article.save()方法保存文章的主图像效果很好,但是 article_img.save()返回错误:

**文件“ C:\ Users \ Arcvi \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ storages \ backends \ s3boto3.py”,行520,在_save_content中     content.seek(0,os.SEEK_SET)*

*** ValueError:对关闭的文件进行I / O操作。****

我猜我在for循环中做错了什么。如果您需要有关代码的更多信息,我将与您分享。请任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试打开此文件,然后创建django File对象。

img = request.data.get(img_key)
if img:
    with open(img.file.seek(0), "rb") as opened_image:
        article_img = ArticleImage(article=new_article,img=File(opened_image), is_main=False )
        article_img.save()