我尝试根据 many2one 关系中的字段将不可见属性设置为字段:
事实上,我有一个带有字段选项的模型 M1 和一个字段 m2_id,它是与包含字段类别(值为 val1/val2 的选择字段)的模型 M2 的 m2o 关系
M1:选项(文本),m2_id(many2one)
M2:类别(选择)
我的目的是根据 m2.category 的值显示/隐藏字段选项
通常这必须工作:
<field name="m2_id" />
<field name="option" attrs="{'invisible': [('m2_id.category','=','val1')]}" />
但这会产生运行时错误:
Error: unknown field m2_id.category in domain [["m2_id.category","=","val1"]]
我试图像这样直接设置属性:
<field name="option" invisible="[('m2_id.category','=','val1')]" />
但它需要一个值而不是一个表达式。所以,它一直被认为是 True。
请任何想法或建议?
最佳答案
您可以为它创建相关字段,然后在 attrs 上添加字段,然后它会正常工作。
例如:
'category': fields.related('m2_id', 'category', type="char", relation='target_table_name', readonly=True, string="Category"),
现在在 xml 中使用
<field name="m2_id" />
<field name="category" invisible="1"/>
<field name="option" attrs="{'invisible': [('category','=','val1')]}" />