4

many2one リレーションのフィールドに応じて、非表示属性をフィールドに設定しようとしています。

実際、私はフィールド オプションと、フィールド カテゴリ (値 val1/val2 を持つ選択フィールド) を含むモデル M2 との m2o リレーションであるフィールド m2_id を持つモデル M1 を持っいます

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と見なされます。

アイデアや提案はありますか?

4

1 に答える 1

2

それに関連するフィールドを作成し、それが正常に機能するよりも後に 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')]}" />
于 2015-03-04T18:46:39.427 に答える