Django Shell图片上传_io.BufferedReader无属性大小

Pov*_*asK 5 python django shell

我的问题是,当我尝试使用 Django shell 将图像保存到我的模型时,我收到此错误,我无法找到任何解决方案。

模型.py

class AdImage(models.Model):
   ad = models.ForeignKey(Ad)
   full_photo = models.ImageField(upload_to='uploads/', blank=True)
Run Code Online (Sandbox Code Playgroud)

我导入模型创建 AdImage 实例添加 'ad' 并尝试

imagead.full_photo.save("NowHiring.jpg",open("C:\\NowHiring.jpg", "rb"))
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\hp\Envs\platform\lib\site-packages\django\db\models\fields\file
s.py", line 106, in save
    self._size = content.size
AttributeError: '_io.BufferedReader' object has no attribute 'size'
Run Code Online (Sandbox Code Playgroud)

使用:Python 3.5,Django 1.9

我能做什么 ?

use*_*461 8

该FieldFile.save方法需要使用 的实例django.core.files.File而不是内置的python 文件句柄来调用。将保存调用更改为:

from django.core.files import File

imagead.full_photo.save("NowHiring.jpg", File(open("C:\\NowHiring.jpg", "rb")))
Run Code Online (Sandbox Code Playgroud)

Django 文档参考FieldFile.save。