在使用oe开发的过程中,我们会经常定义一些selection类型的栏位,并且存入数据库的值与显示在界面上的值并不相同。
例如这样子的定义:"cx_time": fields.selection( [(7, u'7点'), (8, u'8点'), (9, u'9点'), (10, u'10点')], u'时间', required=True),
这样子如果我们在代码中要根据数据库中的记录取得后面要显示的中文时就不好处理了,实际上oe已经有提供给了我们一个方法,可以取到这个栏位定义的列表清单。
上面的定义,我们在onchange方法中使用这样的语法,可以取到一个列表。
sel = dict(fields.selection.reify(cr,uid,self,self._columns['cx_time'],context=context))
sel的结果就是一个字典 {7:u'7点',8:u'8点',9:u'9点',10:u'10点'}
然后根据数据库实际值k,就可以用sel.get(k)取到后面的中文或详细的描述了。