1

当用户从表单中选择酒店时,我试图向用户显示可能的便利设施列表。

为此,我有一个fields.selection带有酒店名称的字段,并且根据我想要填充笔记本的选择,我在同一视图中也有一个fields.one2many字段,该字段需要从设施表中获取特定酒店的设施。

我可以使用该事件来填充与正在更改onChange的字段不同的字段吗?

我有点困惑,我怎么能做到这一点。任何提示将不胜感激。

4

1 回答 1

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. 这是针对 7.0 的。如果您的 OpenERP 版本 < 7.0,请从 XML on change 属性和 hotel_change 方法签名中删除上下文。
  2. an 的返回on_change值是一个包含(可能)的字典:
    • 'value' - 字段和值的字典
    • 'warning' - 包含两个字段的字典,标题和消息 这就像osv.osv_except对用户的回馈。
    • '域' - 一个域。
  3. 您可以在值中返回表单/树上的任何其他字段。
  4. 您不需要在值中返回传入的酒店,但如果有错误或您想更改它,您可以返回它。
  5. 如果您在 value 中返回 "other_field" 并且other_field还有一个on_change,那on_change将被调用。
于 2013-07-10T22:51:35.680 回答