2017-07-06 18 views
1

特定のジャーナルを選択したときに非表示にしたいフィールドが1つあります。odooの非表示のフィールド

<field name="any_field" attrs="{'invisible':[('journal_id','=',10])]}"/> 

上記のコードはうまくいきます。

私はそれが条件を確認する方法ではないと確信しています。私はこのようにしました。

<field name="any_field" attrs="{'invisible':[('journal_id','=',ref('my_module.account_journal_10'))]}"/> 

私は雑誌の静的フィールドを使って試しています。コード。

<field name="any_field" attrs="{'invisible':[('journal_id.code','=','CARD')]}"/> 

まだ動作しておらず、エラーが表示されていません。

ドメインの場合と同じように、私がattrsを.pyから返すことができると思っています。

例えば、

return {'domain': 
      { 
       'any_field':[('journal_id','=',self.env.ref('my_module.account_journal_10').id)] 
      } 
     } 

誰でも私を助けることができますか? ありがとうございます。

答えて

2

私が知る限り、attrsドメイン/フィルタはクライアント側ですので、journal_id.codeまたはpartner_id.customerのようなものは使用できません。クライアントはそのようなデータを知らないためです。

考えられる回避策は、これを実行しようとしているモデルに関連するフィールドを定義することです。今、あなたはmy.modelのビューを拡張する必要があり

journal_code = fields.Char(string="Journal Code", related="journal_id.code") 

::のは、モデルがmy.modelで、すでにこのMany2oneフィールドjournal_idを持っていると仮定しましょう

<field name="journal_code" invisible="1" /> 
<field name="any_field" attrs="{'invisible':[('journal_code','=','CARD')]}"/> 
関連する問題