小编use*_*617的帖子

如何从FileField获取(txt)文件内容?

我在django中打开存储在我的数据库中的文本文件时遇到问题.我想通过我的模型的FileField访问它...模型看起来像这样

   class MyModel(models.Model):
      saved_file = FileField()
Run Code Online (Sandbox Code Playgroud)

我通过管理界面上传了一个测试文件,工作正常.在我看来,我想访问此文件.如果我用标准的python open()打开它就可以了......

 f = open(path, 'r')
 a = f.readlines()
 return render_to_response('base.html', {'content': a}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

这显示文件的行确定...根据https://docs.djangoproject.com/en/dev/ref/models/fields/#filefield,当调用模型中的FileField时,会得到一个FieldFile代理,所以

 f = MyModel.objects.all().get(id=0).saved_file
Run Code Online (Sandbox Code Playgroud)

应该将FieldFile存储在f中,此外文档说明通过在FieldFile上强制转换.open(mode ='rb')从模型打开文件,所以

file = f.open(mode='rb') 
Run Code Online (Sandbox Code Playgroud)

应该像文档中所述的python .open()一样工作.所以,为了得到我做的台词

file.readlines()
Run Code Online (Sandbox Code Playgroud)

应该返回我的行列表.发生的事情是我得到一个错误,说.readlines()属性不存在.我不需要该文件来显示它,这只是一种测试打开文件是否有效的方法,但我需要在我的视图中的变量中的文件内容以进一步在我的业务逻辑中使用它.任何人都可以建议一种方法从FileField frem模型中获取文件内容吗?

python django file

6
推荐指数
2
解决办法
7909
查看次数

标签 统计

django ×1

file ×1

python ×1