在销售中的 odoo 13 中单击按钮后如何打开表单视图(向导)

How to open a form view (wizard) after button click in odoo 13 in Sales

我使用 inheritancexpath[=19 在订单行下方创建了一个按钮“+添加产品” =] 在 Odoo 13.0 销售模块的 sale.order 中,我的目标是当我点击“+添加产品”按钮时,只需打开向导(如自定义表单视图,我可以在其中填写产品详细信息)并在向导中创建下面的 Add 按钮。

quotation_product.xml

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>
        <record model="ir.ui.view" id="view_order_form">
            <field name="name">sale.order.form</field>
            <field name="model">sale.order</field>
            <field name="inherit_id" ref="sale.view_order_form"/>
            <field name="arch" type="xml">
                <xpath expr="/form/sheet/notebook/page/field[@name='order_line']" 
            position="before">
                    <button name="my_button" string=" + Add Products" type="object" class="btn 
                btn-info btn- lg"/>
                </xpath>
            </field>
        </record>
    </data>
</odoo>

quotation_product.py

from odoo import api, fields, models, api

class SaleOrder(models.Model):
    _inherit = "sale.order"
    _name = "sale.order"

    def my_button(self, context=None):
        print("ghghhhghghghghg")

    return True

运营先生,

在您的按钮上,您可以 return 您的视图是这样的, 所以传递 object 和你的模块 view。在那里,你的 view 在页脚上添加了 button 并在 footer_button 上添加了相同的逻辑以执行以您定制的方式。

def my_button(self):
    return {
        'name': "Your String",
        'type': 'ir.actions.act_window',
        'view_type': 'form',
        'view_mode': 'form',
        'res_model': 'object',
        'view_id': self.env.ref('module.view_id').id,
        'target': 'new'
    }

并且在你的 py 文件中,如果你想像 sale.order 一样继承 odoo defaul_object 那么不需要使用 _name.

class SaleOrder(models.Model):
    _inherit = "sale.order"

您也可以参考odoo13官方文档。

谢谢