【发布时间】:2017-01-22 01:51:24
【问题描述】:
我正在 GUI 中创建一个字段 Odoo 有一个带有“计算”的方法。但我无法得到它。
我在 sale.py 模块的 sale.order.line 中创建了一个使用计算属性的字段。
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')
这很完美,但在 GUI Odoo 中也是如此。
图片下方显示:http://es.zimagez.com/zimage/computefield.php
但它显示了以下错误:
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')"
可能存在语法错误,但我不知道如何在 GUI Odoo 中为字段定义方法。
欢迎任何帮助、建议、建议。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
您是否尝试避免 for 循环?也许尝试将其删除并仅在条件下使用。
-
现在我收到以下错误:ValueError: "name 'rec' is not defined" while evaluation
-
当我说要避免循环时,您当然需要调整其余代码!