我正在尝试在 res.partner 模型中继承和添加 one2many 字段。它显示错误:模型'vehicle.brand'上的字段'same_vat_partner_id'无效



继承的"res.partner";并在笔记本部分添加了一个页面(可编辑树(;添加一行";它显示以下错误:

Invalid field 'same_vat_partner_id' on model 'vehicle.brand'

我的代码继承res.partner并在其中添加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")

class CustomContactsPage(models.Model):
_name = "res.partner.line"
x_brand_id = fields.Many2one('vehicle.brand', string="Brand Name")
x_model_id = fields.Many2one('vehicle.model', string="Model Name")

我的车辆代码.品牌型号:

from odoo import api, fields, models

class BrandCreate(models.Model):
_name = "vehicle.brand"
_description = "Customer"
name = fields.Char(string='Brand Name', required=True)

我的车辆代码。型号:

from odoo import api, fields, models

class ModelName(models.Model):
_name = "vehicle.model"
_description = "Models"

name = fields.Char(string='Model Name', required=True)

我的代码:

<?xml version="1.0" encoding="utf-8"?>
<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_brand_ids"></field>
<field name="x_model_ids"></field>
</page>
</xpath>
</field>
</record>

如下图所述,获取内部视图:

查看1

视图2

当使用One2many字段时,inverse_name(示例中的x_model_id(等于当前记录,Odoo尝试使用vehicle.model记录代替res.partner记录重新计算合作伙伴增值税,这就是为什么会出现该错误。

要修复它,只需在vehicle.brand模型中定义反向名称,并在x_model_ids字段中使用它,而不是在x_model_id字段中使用。

示例:

class CustomContacts(models.Model):
_inherit = "res.partner"
x_model_ids = fields.One2many('res.partner.line', 'model_id', string="Model Name")

class CustomContactsPage(models.Model):
_name = "res.partner.line"
model_id = fields.Many2one('res.partner')

编辑:

如果您想就地编辑One2many字段,请在表单视图中定义如下:

<field name="x_model_ids">
<tree editable="bottom">
</tree>
</field>

对于Many2many字段,Odoo将打开一个对话框来选择或创建车辆品牌。

您需要了解Many2many和One2many字段。对于许多情况,您检查所需的参数仅为模型名称。其他是可选的。(填充Many2many字段(odoo 8((

x_brand_ids = fields.Many2many('res.partner.line', string="Brand Name")

为了增加One2many,我们需要许多具有相同型号的One2many。

x_model_ids = fields.One2many('res.partner.line', 'x_model_id', string="Model Name")

为此,您需要res.partner.line 下res.partner字段的x_model_id Many2one

你需要喜欢以下内容:

class CustomContacts(models.Model):
_inherit = "res.partner"

x_brand_ids = fields.Many2many('res.partner.line', string="Brand Name")
x_model_ids = fields.One2many('res.partner.line', 'x_model_id', string="Model Name")

class CustomContactsPage(models.Model):
_name = "res.partner.line"
x_brand_id = fields.Many2one('vehicle.brand', string="Brand Name")
x_model_id = fields.Many2one('res.partner', string="Model Name")

最新更新