我有一个以这种方式绑定到表单的文件: (forms.py) class UploadFileForm(forms.Form): wbfile = forms.FileField(label ='Upload workbook',help_text ='请确保文件是.xlsx格式')
现在我可以使用request.FILES ['wbfile']在视图函数中访问它。但我想将此文件发送到模板,然后发送到另一个视图功能。所以我把它绑定到这样的形式:
f = form.fields['wbfile']
现在我想将此文件保存在磁盘中,但如何访问此文件,这就是我正在尝试的内容:
f = form.fields['file'].value()
with open(/tmp/xyz) as destination:
contents = f.read()
destination.write(contents)
但是这会抛出错误说:'FileField'对象没有属性'value'。
这就是for.fields [wbfile]显示的内容:
<django.forms.fields.FileField object at 0x7f91ff1c49d0>
因此文件肯定绑定到表单。
如果怀疑太明显,请帮助并原谅我,我是初学者!
答案 0 :(得分:0)
我认为在Django文档中你需要的每一个想法。
对于FileField:https://docs.djangoproject.com/en/dev/ref/models/fields/#filefield
尝试使用YourFileField.storage和YourFileField.path来访问该文件。
然后使用此文档:https://docs.djangoproject.com/en/dev/ref/files/storage/
您可以使用open在内存中打开文件。我想它可以给出这样的代码:
storage, path = YourFileField.storage, YourFileField.path
File f = storage.open(path)
我真的不明白你接下来要做什么,但是如果你想把文件保存在其他地方,我想你可以使用:
f.save(path) #or something similar, haven't tested any code like this