Res_partnerからアカウント請求書モジュールにコメントフィールド(顧客の内部メモ)を取得しようとしています。今は後で印刷したいので、xmlコードに含めます。私はこのように3つの方法で試しました、
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
代わりに、関連フィールドを使用する必要があります。
comment = fields.Char(related='partner_id.comment')
account_invoiceレコードに保存する必要がある場合は、パラメータも追加する必要がありますstore = True問題は、この方法では単に印刷することはできませんが、必要な場合はそれを表示するには、ビューに配置する必要があります。
本当に一時的に印刷する必要がある場合は、別の方法で印刷する必要があります。
comment = fields.Char(compute='_compute_comment')
def _compute_comment(self):
for record in self:
record.comment = partner_id.comment
print record.comment
関連フィールド
Fields.relatedフィールドはもうありません。
代わりに、モデルに関連するname引数を設定するだけです:
participant_nick = fields.Char(string='Nick name',
related='partner_id.name')
タイプkwargはもう必要ありません。
Store kwargを設定すると、値がデータベースに自動的に保存されます。新しいAPIを使用すると、関連フィールドの値が自動的に更新されます。
participant_nick = fields.Char(string='Nick name',
store=True,
related='partner_id.name')
注意
関連フィールドを更新するときに、フィールドが保存されていると、関連フィールドのすべての翻訳が翻訳されるわけではありません!!
チェーン関連フィールドを変更すると、チェーンのすべての要素のキャッシュが無効になります。
inodoo8
関連と同じオブジェクトフィールドが必要な場合は、related = "関連フィールド名"を使用できます。store= Trueを使用します。
comment2 = fields.Char(string='comment',related='comment', store=True)
注意してください、あなたは同じ種類のフィールドを使わなければなりません!!
(選択と文字に問題があったので、選択と選択を使用する必要があります)