如何使用Python代码在Odoo Studio中创建计算字段?
我正在使用Odoo 10.0版中的如何使用Python代码在Odoo Studio中创建计算字段?,python,openerp,field,odoo-10,Python,Openerp,Field,Odoo 10,我正在使用Odoo 10.0版中的Studio。我成功地创建了名为x_studio_field_dZVpy的字段,该字段出现在product.templateGUI中 当我试图在product.templateGUI中编辑产品名称时,它会给我一个值错误:“lambda”中的禁用操作码 我选中了“只读”和“存储”复选框。在“依赖项”字段中,我输入了“名称”。我在字段“高级属性”部分的“计算”字段中输入了以下内容 def compute_product_dimension(self): fo
Studio
。我成功地创建了名为x_studio_field_dZVpy
的字段,该字段出现在product.template
GUI中
当我试图在product.template
GUI中编辑产品名称时,它会给我一个值错误:“lambda”中的禁用操作码
我选中了“只读”和“存储”复选框。在“依赖项”字段中,我输入了“名称”。我在字段“高级属性”部分的“计算”字段中输入了以下内容
def compute_product_dimension(self):
for record in self:
if product.name[:2] == 'LG':
product_specs = product.name.split('-')
product_dimension = float(product_specs[6])
x_studio_field_dZVpy = product_dimension / 2
else:
x_studio_field_dZVpy = ""
我在字段“高级属性”部分的“计算”字段中输入了以下内容
def compute_product_dimension(self):
for record in self:
if product.name[:2] == 'LG':
product_specs = product.name.split('-')
product_dimension = float(product_specs[6])
x_studio_field_dZVpy = product_dimension / 2
else:
x_studio_field_dZVpy = ""
比如说
product.name= LG-611-40M-3UM-95P-8.000
如果product.name的前2个字符是“LG”,则代码将字符串拆分为一个数组,并将数组中的第6个元素除以2。在本例中,应将8.000除以2。“x_studio_field_dZVpy”字段应显示4.000
而不是:
for record in self:
if name[:2] == 'LG':
尝试:
Odoo中的计算字段必须有
存储=false
(未选中)。相关字段(name
在本例中)必须具有存储=true
(选中)
另一个错误是Python数组是基于零的,例如:产品规格[1]
返回611
。将产品规格[6]
修订为产品规格[5]
。我重新命名了计算字段x\u product\u dimension
。这就解决了问题
修订代码
for record in self:
if product.name[:2] == 'LG':
product_specs = product.name.split('-')
product_dimension = float(product_specs[5])
record['x_product_dimension'] = product_dimension / 2
else:
record['x_product_dimension'] = ""
我试过你的建议,但还是犯了同样的错误。所以我删除了前两行代码,因为我认为它们在Odoo Studio GUI中是多余的,将“name[:2]”更改为“product.name[:2]”,将“product.x_Studio_field_dZVpy”更改为“x_Studio_field_dZVpy”。现在我没有收到错误,但是“product.x_studio_field_dZVpy”字段值显示为“0.00”,应该显示为“4.00”