我正在开发一个模块,用于打印与发票相关的一些值。会计模型中唯一缺少的两件事是字段:
-vat
- 代码(国家代码)
我已成功添加增值税字段。但是,在尝试引入“代码”字段时会出错。我的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'
这是我想要获得的最终结果:
您是否知道任何解释如何使用相关字段的教程?官方文件不是很深入......
答案 0 :(得分:1)
相关字段基于您正在处理的模型的关系。通常这些字段是Many2one
字段。您已经使用了vat
partner_id
Many2one
,这与模型res.partner
的{{1}}关系。
您可以与此关系的其他字段相关联,例如在您的示例中,发票合作伙伴的增值税。你必须像大多数面向对象的语言一样使用点符号。
但链条并没有停在第一件上。所以你可以谈谈很多“更深层次”的关系。例如,您的国家/地区代码:
code = fields.Char(string='Country Code', related='partner_id.country_id.code')
同样,链条始于partner_id
。但国家代码在关系链中更深入。 res.partner
与模型Many2one
具有res.country
关系,其中包含代码。只需使用点符号即可。