odoo Binary field 下载后文件名的问题

版本:

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并更新模块,重新上传附件就可以看到效果了。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值