Odoo Studio服务器错误计算字段,错误

时间:2018-11-07 18:12:51

标签: python odoo odoo-12

我不断收到此错误,我想念什么?
我尝试了多种方法,但始终会遇到此错误,我肯定会错过一些简单的方法。
图片链接中的Odoo设置示例图片

Odoo Compute Settings

from odoo import api
x_studio_field_CKrxZ = fields.Float(compute='compute_product_dimension', store=True)
@api.depends('list_price','standard_price')
def compute_product_dimension(self):
  for record in self:
      record['compute_product_dimension'] = record.list_price + record.standard_price 

Odoo错误

ValueError: forbidden opcode(s) in "from odoo import api\r\nx_studio_field_CKrxZ = fields.Float(compute='compute_product_dimension', store=True)\r\n@api.depends('list_price','standard_price')\r\ndef compute_product_dimension(self):\r\n  for record in self:\r\n      record['compute_product_dimension'] = record.list_price + record.standard_price \r\n": IMPORT_NAME, IMPORT_FROM

1 个答案:

答案 0 :(得分:1)

计算字段函数在Odoo的eval的沙盒实现中执行,称为safe_eval。它禁止某些Python解释器操作码来防止任意代码执行。您收到的错误是因为IMPORT_NAMEIMPORT_FROM操作码are not allowed(由from odoo import api语句引起)。

您不需要导入语句,字段声明,@api.depends装饰器或计算功能签名定义,您的计算方法应如下所示:

for record in self:
    record['x_studio_field_CKrxZ'] = record.list_price + record.standard_price 

应该在 Advanced Properties 下的 Dependencies 字段中声明字段的依赖性,而不是@api.depends('list_price','standard_price'),如屏幕截图所示。