odoo 返回信息

2021-02-06  本文已影响0人  grey_27

odoo 执行方法返回信息,odoo只提供了报错信息返回,但是报错会回滚执行的方法,有没有可以运行方法成功后再返回提示信息的呢,

1.onchange方法是可以作为返回警告信息的,但是onchange方法必须由前端触发不太适用所有情况

@api.onchange('name')
def _onchange_name(self):
    return {'warning': {'title': '标题:', 'message': '警告信息'}}

2.使用OCA模块web_notify

def test(self):
    self.env.user.notify_success(message='My success message')

这个模块实现了从PY调用JS的方法在页面右上角展示一个小弹窗进行提示信息,
缺点是和报错返回的弹窗不是同一个东西,风格不统一

3.使用Dialog
odoo前端已经封装好了dialog: \odoo\addons\web\static\src\js\core\dialog.js
我们可以将这个封装为一个动作,然后可以在PY中调用

odoo.define('web_ir_actions_dialog_view', function (require) {
'use strict';

    var core = require('web.core');
    var Dialog = require('web.Dialog');

    function AlertDialog(parent, action) {
        var dialog = new Dialog(this, action.params);
        dialog.open();
    }

    core.action_registry.add("dialog", AlertDialog);
});

将上面这个js文件引入后,在PY中可以如下调用

def test_fun(self):
    return {
        'type': 'ir.actions.client',
        'tag': 'dialog',
        'params': {
             'title': '提示信息',
             '$content': '<h2 style="color:red; text-align:center; ">123456789</h2>',
             'size': 'extra-large',
            }
        }

tag标签一定是js文件中注册的 'dialog'
params可以填的参数有:

以上方法参考曹大文章

上一篇 下一篇

猜你喜欢

热点阅读