Python 2.7 如何在odoo-8中使用相关字段(fields.related)?

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 =

我正在尝试从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 = 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。当你不再需要打印时,记得使用第一个解决方案。。。