版本:
odoo8
问题描述:
在model中添加二进制字段
file = fields.Binary(string="File Attachment")
在视图中显示后,点击会自动下载,但是下载后文件的名字却不是上传时候的文件名,而是模块名加数字的形式。
而正常情况是,上传时候文件叫啥,下载之后还应该叫这个名字。
分析过程:
点击“Download”,是发送了一个url,到web的控制器saveas_ajax,位置在addons/web/controllers/main.py的1111行。
断点跟踪会发现传过来的参数data中取不到filename_field
其实在这里做点改动也是可以的。
但是实际上解决办法跟这个过程没啥关系。
解决办法:
在定义附件字段时,多加一个文件名字的字段
file = fields.Binary(string="File Attachment")
file_name = fields.Char(string="File Name")
然后在视图文件中这样定义
<field name="file" filename="file_name"/>
<field name="file_name" invisible="1"/>
重启odoo并更新模块,重新上传附件就可以看到效果了。