ディスクからFileFieldにファイルを割り当てようとしましたが、次のエラーが発生します。
AttributeError: 'str'オブジェクトに属性 'open'がありません
私のpythonコード:
pdfImage = FileSaver()
pdfImage.myfile.save('new', open('mytest.pdf').read())
と私のmodels.py
class FileSaver(models.Model):
myfile = models.FileField(upload_to="files/")
class Meta:
managed=False
よろしくお願いします
Djangoは独自の ファイルタイプ を使用します(機能が少し強化されています)。とにかく、Djangoのファイルタイプは デコレータ のように機能するので、Django APIのニーズを満たすために、既存のファイルオブジェクトにラップするだけです。
from Django.core.files import File
local_file = open('mytest.pdf')
djangofile = File(local_file)
pdfImage.myfile.save('new', djangofile)
local_file.close()
もちろん、次のように書くことで、その場でファイルを装飾することができます(1行少ない):
pdfImage.myfile.save('new', File(local_file))