我在Odoo 13.0销售模块中使用sale.order中的继承和xpath在订单行下方创建了一个按钮">+添加产品",我的目标是当我点击"+添加产品"按钮时,只需打开一个向导(如自定义表单视图,我可以在其中填写产品详细信息(,然后在向导中创建下面的"添加"按钮。
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
Mr-op,
在你的按钮上,你可以像这样返回你的视图,因此,传递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
一样继承odoodefaul_object
,则无需使用_name
。
class SaleOrder(models.Model):
_inherit = "sale.order"
您也可以参考并找到官方的odoo13文档。
感谢