2016-07-12 37 views
2

我有一個模型,用戶可以在其中選擇一隻狗的品種(dog_breed,選擇字段)。然後,在同一個模型中,我有一個Many2many字段(dogs),用戶可以在其中添加狗。但我希望當用戶添加一隻狗時,他只能在Selection字段中選擇的品種中選擇。將動態域應用到Odoo8中many2many字段的最佳方法是什麼?

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

當你添加一個元素到Many2many,首先你看到的可用記錄列表,選擇其中的一個,如果你正在尋找一個已經存在。我需要的是將域應用到該列表。

實施例:

的用戶選擇獵狐梗在Selection域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)]", 
) 
相關問題