Je crée un champ dans la GUI Odoo a une méthode avec le 'calcul'. Mais je ne peux pas l'avoir.Comment définir un calcul dans un champ de l'interface graphique Odoo?
J'ai un champ créé avec l'attribut de calcul dans le module sale.order.line of sale.py.
niu = fields.Char(string="NIU", compute="_niu_validation", readonly=True, store=True)
@api.depends('product_id.product_tmpl_id.type')
def _niu_validation(self):
for rec in self:
if rec.product_id.product_tmpl_id.type == 'product' and not rec.niu:
rec.niu = self.env['ir.sequence'].next_by_code('sale.order.line')
Cela fonctionne parfaitement, mais ce même vouloir faire dans l'interface graphique Odoo.
Ci-dessous l'image est affichée: http://es.zimagez.com/zimage/computefield.php
Mais il me montre l'erreur suivante:
ValueError: forbidden opcode(s) in u"for rec in self:\n if rec.product_id.product_tmpl_id.type == 'product' and not rec.niu:\n \t rec.niu = self.env['ir.sequence'].next_by_code('sale.order.line')"
Peut-être il y a une erreur de syntaxe, mais je ne sais pas comment définir une méthode pour champ dans l'interface graphique Odoo.
Toute aide, conseil, suggestion sont les bienvenus. Si quelqu'un pouvait m'aider, je serais très reconnaissant.
Avez-vous essayé d'éviter la boucle for? Peut-être essayez simplement de l'enlever et de l'utiliser seulement si la condition. –
Maintenant, j'obtiens l'erreur suivante: ValueError: "nom 'rec' n'est pas défini" lors de l'évaluation – beriliox
Quand j'ai dit d'éviter la boucle, bien sûr, vous avez besoin d'adapter le reste du code! –