【问题标题】:Can I populate a field on an onChange event?我可以在 onChange 事件上填充字段吗?
【发布时间】:2013-07-10 18:58:24
【问题描述】:
当用户从表单中选择酒店时,我试图向用户显示可能的便利设施列表。
为此,我有一个带有酒店名称的 fields.selection 字段,并且根据我想要填充笔记本的选择,我在同一视图中也有一个 fields.one2many 字段,该字段需要获取特定的便利设施设施表中的酒店。
我可以使用onChange 事件来填充与更改不同的字段吗?
我对如何实现这一点感到有些困惑。任何提示将不胜感激。
【问题讨论】:
标签:
python
xml
onchange
openerp
【解决方案1】:
是的,你可以:
您的 XML 将是:
<field name="hotel" on_change="hotel_change(hotel, context) />
<field name="other_field" />
您的方法将是(如果版本
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,},}
注意:
- 这适用于 7.0。如果您的 OpenERP 版本
-
on_change 的返回值是一个包含(可能)的字典:
- 'value' - 字段和值的字典
- 'warning' - 一个包含两个字段的字典,title 和 message 这就像一个
osv.osv_except 返回给用户。
- 'domain' - 一个域。
- 您可以返回表单/树中的任何其他字段的值。
- 你不需要在值中返回传入的酒店,但如果有错误或者你想更改它,你可以返回它。
- 如果您在值中返回“other_field”并且
other_field 也有一个on_change,则将调用on_change。