2015-07-06 46 views
0

我有一個One2many場的形式。從這個字段你可以添加元素,如果你這樣做,就會打開一個彈出窗口。我想知道如何在彈出窗口中獲得父窗體中的字段。如何從Odoo中的彈出窗口獲取父窗體的字段?

例如:

母體形式(型號my.parent.model)有一個名爲partner_id字段。彈出(型號my.child.model)有一個名爲product_id場。在my.child.model我添加了一個被稱爲功能時product_id改變(@api.onchange('product_id'))。在這個函數中,我想要得到在父窗體中選擇的partner_id

要做到這一點,我在XML視圖中添加這product_id

<field name="product_id" context="{'partner_id':parent.partner_id}" /> 

在Onchange功能,如果沒有選定的合作伙伴,我拋出一個異常。當彈出窗口打開時,儘管選擇了合作伙伴,但此例外情況始終會升高。但是,當我選擇任何產品時,它都是完美的。

問題是,在彈出窗口打開時會觸發onchange函數,在這種情況下,上下文沒有變量partner_id(好像它沒有足夠的時間來獲取它)。

這個問題在版本7中沒有發生,因爲在這個版本中你必須將變量傳遞給onchange,並且你可以在那裏包含partner_id,但現在在版本8中,我該如何管理這個問題?

預先感謝您!

回答

3

好吧,我浪費了很多時間尋找一個解決方案,無需增加新的領域模型,我發現問我的問題後僅一分鐘的解決方案。

我必須得添加上下文父窗體的One2many領域:

<field name="order_line" position="attributes"> 
    <attribute name="widget">"one2many_list"</attribute> 
    <attribute name="context">"{'partner_id': partner_id}"</attribute> 
</field> 

彈出打開時,現在它的作品!

相關問題