【问题标题】:Odoo Studio Server Error Computed Fields, ErrorOdoo Studio 服务器错误计算字段,错误
【发布时间】:2018-11-07 18:12:51
【问题描述】:

我不断收到此错误,我错过了什么?
我尝试了多种方法,但总是收到此错误,我确信我错过了一些简单的东西。
图片链接中的 Odoo 设置示例图片

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

【问题讨论】:

    标签: python odoo odoo-12


    【解决方案1】:

    计算域函数在称为safe_evaleval 的Odoo 沙盒实现中执行。它禁止某些 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'),如屏幕截图所示。 p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多