2016-03-01 1 views
1

Моя проблема в том, что когда я пытаюсь сохранить изображение в своей модели с помощью оболочки Django, я получаю эту ошибку, которую я не могу найти.Django Shell image upload _io.BufferedReader без атрибута размер

models.py

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

импортировать модели создают AdImage экземпляр добавить 'объявление' и попытаться

imagead.full_photo.save("NowHiring.jpg",open("C:\\NowHiring.jpg", "rb")) 

, но я получаю сообщение об ошибке

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' 

Использование: Python 3,5, Django 1.9

Что мне делать?

ответ

2

Метод 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"))) 

Django docs ссылка для FieldFile.save.