odoo 文件下载动作

在开发中经常遇到下载文件的需求,odoo中也提供了一个ir.actions.act_url动作,可以跳转打开一个下载链接,实现下载需求。
但是实际使用中还是有点缺陷
1.开发繁琐,需要写一个单独的跳转动作方法,再写的一个专门的下载接口
2.体验不友好,在弹窗向导中的按钮执行url动作跳转后不会关闭原始的弹窗
3.无法做到文件下载错误提醒,在生成文件内容之中可能会出现错误,异常检查如果写在跳转方法里,此时文件还未生成无法预知报错,只能放在下载方法中,在下载方法中最终返回必须是一个完整的页面或者文件,无法做到odoo报错提示

基于以上问题决定自己写一个下载文件的动作,可以直接通过按钮方法返回下载内容。
使用方法

def download_file(self):
        # your_code...
        file_content = b''
        return {
            'type': 'ir.actions.act_download',
            'file_name': 'test.xlsx',  # your file name
            'file_type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', # your file type
            'file_data': base64.encodebytes(file_content), 
        }

app地址:https://apps.odoo.com/apps/modules/14.0/web_download_action/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容