2016-07-12 2 views
2

私は、ユーザーが犬の品種(dog_breed、選択フィールド)を選択できるモデルを持っています。そして、同じモデルで、私はMany2manyフィールド(dogs)を持っています。このフィールドでは、ユーザーは犬を追加できます。しかし、ユーザーが犬を追加するときには、Selectionフィールドで選択された品種の犬の中からのみ選択することができます。Odoo8のmany2manyフィールドにダイナミックドメインを適用する最も良い方法は?

<field name="dog_breed"/> 
<field name="dogs" domain="[('breed', '=', dog_breed)]"/> 

あなたはMany2manyに要素を追加する場合、まず、あなたが探しているが既に存在する場合は、それらのいずれかを選択するために、可能なレコードのリストを参照してください。私が必要とするのは、そのリストにドメインを適用することです。

例:

、ユーザが選択フィールドdog_breedフォックス・テリアを選択します。今度は 彼はMany2many dogsに要素を追加します。 の利用可能なすべての犬のリストが開きますが、 の利用可能なすべての犬用犬のリストを表示したいとします。これを行うには、私は上記のコードを書いたが、それはまったく動作していない です。私はコードをこのように変更した場合

しかし、:

<field name="dog_breed"/> 
<field name="dogs" domain="[('breed', '=', 'foxterrier')]"/> 

は、これは完璧に動作します。 XMLコードからこれを管理することは可能ですか?変数右の部分と

答えて

1

ダイナミックドメインは、Pythonコードに適用されなければならないので、私はちょうどPythonでMany2manyフィールドの定義に自分のドメインをカットしなければならなかった:

dogs = fields.Many2many(
    comodel_name='dog', 
    relation='mss_dog_rel', 
    column1='mss_id', 
    column2='dog_id', 
    string='Dogs', 
    domain="[('breed', '=', dog_breed)]", 
) 
関連する問題