Odoo 表单中的表单小部件按钮

Form Widget button in Odoo form

我尝试在 Invoice 表单中添加一个按钮,我需要在 js 中发起一个调用

所以我用 Js 和 XML 完成了编码,请在下面找到。

在 JS 中

odoo.define('test_module.print_button', function (require) {
"use strict";

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

var form_common = require('web.form_common');
var formats = require('web.formats');

var QWeb = core.qweb;
var _t = core._t;

form_widget.WidgetButton.include({
    on_click:function() {
        if(this.node.attrs.custom === "print"){
             console.log('Success');
        }
        else{
            this._super();
        }
    },  
});   
});

在 XML 中我继承了帐户发票表单视图

<odoo>
    <data>
        <record model="ir.ui.view" id="invoice_form_test">
            <field name="name">invoice.form.test</field>
            <field name="model">account.invoice</field>
            <field name="inherit_id" ref="account.invoice_form"/>
            <field name="arch" type="xml">

                <header position="inside">

                    <button type="action" string="Print Test"  icon="fa-print" custom="print" />


                </header>

            </field>
        </record>

    </data>
</odoo>

这行不通,点击它会显示

TypeError: exec_workflow() takes exactly 4 arguments (3 given)

我需要添加更多内容才能使用它吗?请评论。

另外请建议将按钮点击从表单视图传递给 js 的任何方法。 谢谢

  1. 您错误地导入了表单小部件。

    var form_widget = require('web.form_widgets'); // 正确一个