Python 2.7 如何在odoo-8中使用相关字段(fields.related)?
我正在尝试从res_partner到account invoice模块检索注释字段(客户内部注释)。现在我只想稍后打印它,我将在xml代码中包含它。我试过三种方法Python 2.7 如何在odoo-8中使用相关字段(fields.related)?,python-2.7,openerp,openerp-7,odoo-8,Python 2.7,Openerp,Openerp 7,Odoo 8,我正在尝试从res_partner到account invoice模块检索注释字段(客户内部注释)。现在我只想稍后打印它,我将在xml代码中包含它。我试过三种方法 1)comment2 = fields.Char(string='Comment',related='res_partner.comment',compute='_compute_com') @api.multi def _compute_com(self): print self.comment2 2)comment =
1)comment2 = fields.Char(string='Comment',related='res_partner.comment',compute='_compute_com')
@api.multi
def _compute_com(self):
print self.comment2
2)comment = fields.Many2one('res.partner','Comment',compute='_compute_com')
@api.multi
def _compute_com(self):
print self.comment
3)partner_comment = fields.Char(compute='_compute_com')
@api.multi
def _compute_com(self):
Comment = self.env['res.partner'].browse(partner_id).comment
print Comment
在odoo8中 如果需要相同的对象字段来关联,则可以使用related=“related field name”use store=True
comment2 = fields.Char(string='comment',related='comment', store=True)
您应该使用相关字段:
comment = fields.Char(related='partner_id.comment')
如果需要将其存储在帐户\u发票记录中,还需要添加参数store=True
问题是,这种方式你们不能只打印它,但若你们需要显示它,你们需要把它放到你们的视图中
如果确实需要临时打印,则需要以其他方式进行:
comment = fields.Char(compute='_compute_comment')
def _compute_comment(self):
for record in self:
record.comment = partner_id.comment
print record.comment
相关字段 不再有字段。相关字段 您只需设置与模型相关的name参数:
participant_nick = fields.Char(string='Nick name',
related='partner_id.name')
kwarg类型不再需要了
设置store kwarg将自动将值存储在数据库中。使用新API,相关字段的值将自动更新,sweet
participant_nick = fields.Char(string='Nick name',
store=True,
related='partner_id.name')
注
更新任何相关字段时,并非所有相关字段的翻译
如果存储了字段,则会进行翻译
链相关字段修改将触发链中所有元素的缓存失效。小心,您必须使用相同类型的字段。
(我在选择和字符方面有问题…所以我必须使用选择和选择)你能解释你的问题吗???你写的选项1是你问题的正确答案。不,我尝试了它不起作用,我得到的错误是keyerror:res\u partnercool。当你不再需要打印时,记得使用第一个解决方案。。。