[英]How can i fetch data from tree view made by one2many fields and set it as an onchange function for another field in odoo 15?
I have inherited res.partner model and added my own one2many fields which is shown below:我继承了 res.partner model 并添加了我自己的 one2many 字段,如下所示:
from odoo import api, fields, models
class CustomContacts(models.Model):
_inherit = "res.partner"
x_brand_ids = fields.Many2many('res.partner.line', 'x_brand_id', string="Brand Name")
x_model_ids = fields.One2many('res.partner.line', 'x_model_id', string="Model Name")
x_customer_ids = fields.One2many('res.partner.line', 'x_customer_id', string="Vehicle Details")
class CustomContactsPage(models.Model):
_name = "res.partner.line"
x_customer_id = fields.Many2one('res.partner', string="Vehicle Details")
x_brand_id = fields.Many2one('vehicle.brand', string="Brand Name")
x_model_id = fields.Many2one('vehicle.model', string="Model Name")
x_vehicle_number_id = fields.Char(string="Vehicle Number")
Its related views:其相关观点:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_form_inherited" model="ir.ui.view">
<field name="name">res.partner.inherited</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='internal_notes']" position="after">
<page string="Vehicle Details">
<field name="x_customer_ids">
<tree editable="bottom">
<field name="x_brand_id"/>
<field name="x_model_id"/>
<field name="x_vehicle_number_id"/>
</tree>
</field>
</page>
</xpath>
</field>
</record>
</odoo>
Now i have inherited sale.order model & added 3 fields in it:现在我继承了 sale.order model 并在其中添加了 3 个字段:
from odoo import api, fields, models
class CustomSaleOrder(models.Model):
_inherit = "sale.order"
vehicle_brand = fields.Char(string='Vehicle Brand')
vehicle_model = fields.Char(string='Vehicle Model')
vehicle_number = fields.Char(string='Vehicle Number')
Its related views:其相关观点:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="sale_order_inherited" model="ir.ui.view">
<field name="name">sale.order.inherited</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='partner_id']" position="after">
<field name="vehicle_brand"/><field name="vehicle_model"/><field name="vehicle_number"/>
</xpath>
</field>
</record>
</odoo>
Now partner_id field is already there in sale.order which indicates the customer name, so how can i create a onchange function through which when i select customer(partner_id) it shows vehicles belongs to that customer??现在 partner_id 字段已经存在于 sale.order 中,它表示客户名称,那么我如何创建一个 onchange function 通过它当我 select 客户(partner_id)它显示车辆属于该客户?
Insted of creating new char fields of vehicle details you can add single related field into sale.order model.为了创建车辆详细信息的新字符字段,您可以将单个相关字段添加到 sale.order model 中。
vehicle_ids = fields.One2many(related='partner_id.x_customer_ids' string='Vehicles')
And in Sale order form view you can add page for vehicle list.在销售订单表单视图中,您可以添加车辆列表页面。
<page string='Vehicle List'>
<field name='vehicle_ids'>
<tree>
<field name='x_brand_id'/>
<field name='x_model_id'/>
<field name='x_vehicle_number_id'/>
</tree>
</field>
</page>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.