2013-07-10 60 views
1

我試圖向用戶顯示當用戶從窗體中選擇酒店時可能的設施列表。我可以在onChange事件上填充字段嗎?

因爲我有一個fields.selection字段與酒店名稱和基於選擇我想填充一個筆記本我也有在fields.one2many領域,這將需要從特定的酒店,設施表。

我可以使用onChange事件來填充從更改爲的不同字段嗎?

我有點困惑,我該如何做到這一點。任何提示將不勝感激。

回答

2

是的,你可以:

你的XML是:

<field name="hotel" on_change="hotel_change(hotel, context) /> 
<field name="other_field" /> 

你的方法是(從方法簽名刪除背景下,如果版本< 7.0):

def hotel_change(self, cr, uid, ids, hotel, context = None): 
    other_field_value = get_other_field_value(hotel) 
    return {'value': {'other_field': other_field_value,},} 

注:

  1. This i s爲7.0。如果您的OpenERP版本< 7.0從XML更改屬性和hotel_change方法簽名中刪除上下文。
  2. on_change的返回是含有(可能)的字典:
    • 「值」 - 字段的字典和值
    • 「警告」 - 具有兩個字段的字典,標題和消息,這變得像osv.osv_except返回給用戶。
    • '域' - 一個域。
  3. 您可以在窗體/樹的值中返回任何其他字段。
  4. 您不需要返回酒店中傳入的值,但如果出現錯誤或者您想更改它,您可以將其退回。
  5. 如果您返回值「other_field」並且other_field也有on_change,那麼將調用該on_change
相關問題