J'essaie de récupérer le champ de commentaire (notes internes du client) de res_partner au module de facturation du compte. À l'heure actuelle, je veux juste l'imprimer plus tard, je l'inclure dans le code xml. J'ai essayé de trois façons comme ça,
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
Vous devez utiliser un champ lié à la place:
comment = fields.Char(related='partner_id.comment')
Si vous devez le stocker dans votre account_invoice record, vous devez également ajouter le paramètre store = True Le problème est que vous ne pouvez pas simplement l’imprimer mais montrez-le, vous devez le mettre à votre vue.
Si vous avez vraiment besoin de l’imprimer temporairement, vous devez le faire autrement:
comment = fields.Char(compute='_compute_comment')
def _compute_comment(self):
for record in self:
record.comment = partner_id.comment
print record.comment
Domaine connexe
Il n'y a plus de champs associés.
Au lieu de cela, vous venez de définir l'argument de nom associé à votre modèle:
participant_nick = fields.Char(string='Nick name',
related='partner_id.name')
Le type kwarg n'est plus nécessaire.
Définition du magasin kwarg stockera automatiquement la valeur dans la base de données. Avec la nouvelle API, la valeur du champ associé sera automatiquement mise à jour, gentil.
participant_nick = fields.Char(string='Nick name',
store=True,
related='partner_id.name')
Remarque
Lors de la mise à jour d'un champ associé, toutes les traductions du champ associé Ne sont pas traduites si le champ est enregistré !!
La modification des champs liés à une chaîne entraînera l'invalidation du cache pour tous les éléments de la chaîne.
dans odoo8
si vous avez besoin des mêmes champs d'objet liés, vous pouvez utiliser related = "nom du champ lié" use store = True
comment2 = fields.Char(string='comment',related='comment', store=True)
Attention, vous devez utiliser le même type de champ !!
(J'ai eu le problème avec Selection et Char ... je dois donc utiliser Selection avec Selection)