odoo 返回信息

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': '

123456789

', 'size': 'extra-large', } }

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

  • title: 弹窗的标题
  • $content 文本信息,需要写入html
  • size 弹窗大小,可选项有(由大到小):'extra-large', 'large', 'medium' 'small'
  • buttons 展示按钮,默认值是:[{text: _t("Ok"), close: true}],如果不想展示确认按钮可以传入[]

以上方法参考曹大文章

你可能感兴趣的:(odoo 返回信息)