Python 使用FileField Django访问上载的文件
我正在尝试创建一个带有文件字段的Django表单,以便根据模型上载pdfPython 使用FileField Django访问上载的文件,python,django,forms,file-upload,filefield,Python,Django,Forms,File Upload,Filefield,我正在尝试创建一个带有文件字段的Django表单,以便根据模型上载pdf #models.py class ProductionRequest(models.Model): ... contract_file = models.FileField('Contract file (PDF)', upload_to='contracts/') ... 我可以上传文件并将其保存在我的对象中,但是当我尝试使用此代码在模板中显示文件时 {{ prod_req.contra
#models.py
class ProductionRequest(models.Model):
...
contract_file = models.FileField('Contract file (PDF)', upload_to='contracts/')
...
我可以上传文件并将其保存在我的对象中,但是当我尝试使用此代码在模板中显示文件时
{{ prod_req.contract_file }}
它只显示文件的路径
合同/上传文件_.pdf。如何在文件的新选项卡中创建下载或打开的链接
另外:当我尝试从Django admin打开文件时,使用以下链接
合同文件PDF:当前:合同/file_upload.PDF
我没有给我看文件,我有这个:
找不到页面404请求URL:http://127.0.0.1:8000/admin/appname/productionrequest/1/change/contracts/file_uploaded.pdf/change/
如何访问我的文件?它的工作原理与Python文件一样。因此,您刚才引用文件对象的方式 要获取文本,需要使用f.read。因此,在模板中,而不是
{{ prod_req.contract_file }}
使用
但是,请注意,调用read会将光标移动到文件的末尾。第一次对文件调用read时,它将返回所有文本。第二次,它什么也不返回。如果需要两次文本,这只是一个问题,但在这种情况下,请将文本直接存储在上下文对象上
如果有任何不清楚的地方,请告诉我。可能会有帮助。谢谢你,现在我可以拿到我的文件了!
{{ prod_req.contract_file.read }}