Добрый день.
Есть модель:
class Attachment(models.Model):
attach = models.FileField(verbose_name=u'Вложенные документы', upload_to = 'attachment/%Y/%m/%d', blank=True, null=True)
Создаю в коде файл в формате pdf и пытаюсь сохранить его в базу данных в поле FileField:
pdf = pdf_creator.print_pdf('proposition.odt', cont)
attach = Attachment(attach=pdf)
attach.save()
Тут функция pdf_creator.print_pdf() создает файл в формате pdf по шаблону в формате odt и контексту. Если посмотреть в переменных, то переменная pdf это:
pdf <open file '/tmp/tmppr8XJb.pdf', mode 'r' at 0x9eef77c>
И вот на попытке сохранить это значение а базу выдает такую ошибку:
Exception Type: AttributeError
Exception Value: 'Document' object has no attribute '_committed'
Я посмотрел на то место где идет попытка обратится к этому атрибуту - там такой код:
def pre_save(self, model_instance, add):
"Returns field's value just before saving."
file = super(FileField, self).pre_save(model_instance, add)
if file and not file._committed:
# Commit the file to storage prior to saving the model
file.save(file.name, file, save=False)
return file
И локальные переменные в этом месте:
Variable Value
add True
model_instance <Attachment: Вложение>
file <open file '/tmp/tmppr8XJb.pdf', mode 'r' at 0x9eef77c>
self <django.db.models.fields.files.FileField: attach>
Подскажите, в чем может быть проблема? Может я что-то не так делаю?