我尝试根据 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')]}" />

10-06 08:25