我有安装了CRM的Odoo 11。
我创建了3个字段(类型选择),并从CRM /机会的编辑表单视图中添加到视图。
我必须在3个下拉列表之间创建一个依赖项(第一个下拉列表限制第二个下拉列表,第二个和第三个下拉列表相同)。
我认为我可以做模型代码。这是我的问题,无法找到模型或将模型添加到表单视图。
编辑:
我在字段中发现了高级属性。 在x_selectionb的高级属性中,我在 Dependencies x_selectiona和 Compute :
中添加了a = [('c','c'),('d','d')]
b = [('e','e'),('f','f')]
for record in self:
if record.x_selectiona == 'a':
record.x_selectionb = fields.Selection(a)
elif record.selectiona == 'b':
record.x_selectionb = fields.Selection(b)
然后出现下一个错误:
raise ValueError("forbidden opcode(s) in %r: %s" % (expr, ', '.join(opname[x] for x in codes)))
选择第一个选项后,如何在第二个选择中添加所需的值?
我意识到我正在访问 self.x_selectionb 中的值,而不是字段
答案 0 :(得分:0)
我找到了解决方法。
我创建了3个模型(x_modelA,x_modelB,x_modelC)。
在机会中,我创建了3个字段many2one(x_a,x_b,x_c)。
在xml视图中,我添加了三个字段:
<field name="x_a"/>
<field name="x_b" domain="[('x_a1', '=', x_a)]"/>
<field name="x_c" domain="[('x_b1', '=', x_b)]"/>
在此步骤中,依赖关系起作用,但是如果我更改了先前的下拉列表,它将失去依赖关系。
在字段x_b中(如果x_a更改则清除值),我添加了依赖项x_a并在计算中添加了
for record in self:
record['x_b'] = False
在字段x_c中(如果x_a或x_b更改则清除值),我在计算中添加了依赖项x_a,x_b。
for record in self:
record['x_c'] = False