Odoo 奥多-如何添加;代码“;场对会计模型

Odoo 奥多-如何添加;代码“;场对会计模型,odoo,odoo-9,custom-fields,Odoo,Odoo 9,Custom Fields,我正在开发一个模块,该模块将打印与发票相关的一些值。会计模型中缺少的只有两个字段: -大桶 -代码(国家代码) 我已成功添加增值税字段。但是,在尝试引入“代码”字段时会出现错误。我的py代码如下: from openerp import models, fields class CountryCodeInvoice(models.Model): # where to place new fields _inherit = 'account.invoice' # getting cou

我正在开发一个模块,该模块将打印与发票相关的一些值。会计模型中缺少的只有两个字段:

-大桶

-代码(国家代码)

我已成功添加增值税字段。但是,在尝试引入“代码”字段时会出现错误。我的py代码如下:

from openerp import models, fields

class CountryCodeInvoice(models.Model):
# where to place new fields
    _inherit = 'account.invoice'

# getting country code to the accounting model
    code = fields.Char(string='Country Code', related='res_country.code')

class AccountInvoiceInherited(models.Model):
# where to place new fields
    _inherit = 'account.invoice'
# getting the vat field to accounting model
    vat = fields.Char(string='vat', related='partner_id.vat')
我肯定把这部分搞砸了:

related='res_country.code'
这是我试图得到的最终结果:


你知道任何解释如何使用相关领域的教程吗?官方文档并不深入…

相关字段基于您正在处理的模型的关系。通常这些字段是
manyOne
字段。您已经将一个用于
vat
partner\u id
,它是与model
res.partner
manyOne
关系。 您可以与此关系的其他字段关联,例如在您的示例中,发票合作伙伴的增值税。您必须像大多数面向对象语言一样使用点符号。 但是链条并没有在第一块上停止。因此,你可以建立更“深入”的关系。例如,您的国家代码:

code=fields.Char(字符串='Country code',related='partner\u id.Country\u id.code')

同样,这条链的开头是
partner\u id
。但国家代码在关系链中的位置更深
res.partner
与持有代码的model
res.country
manyOne
关系。只需使用点符号即可。

非常感谢。明天我将试着玩它。你怎么认出这棵树?我是说,当我在找一个大桶的时候,我看到它就在“合作伙伴”里面。在这种情况下,我应该去寻找代码,然后找到合作伙伴的链接(通过国家)?这件事毁了我的头脑,或者我可能是太负荷了……对于初学者来说,找到这样的关系并不容易,因为奥多是复杂的。只需查看模型及其字段,并尝试进行逻辑搜索。