【发布时间】:2012-12-11 10:42:30
【问题描述】:
我已经看到this 的问题,并用它在 openerp 中实现了类似的目标。因此我的功能:
def onchange_warning(self, cr, uid, ids, result, lower, upper, context=None):
res={}
flag = False
if result < lower or result > upper:
flag = True
res = {'warning': flag}
return {'value': res}
在我看来:
<field name="result" on_change="onchange_warning(result, lower, upper)"/>
其中 result、lower 和 upper 是浮点数,warning 是没有默认值的布尔值。在我的表单内的树中,我为 lower 和 upper 预定义了值,而 result 为 null (0.00) em> 并设置为填充。
该功能运行良好,并按预期工作。但是,我遇到了 实际上等于 0.0 并且应该设置标志的结果的问题,而 onchange 函数(D'Oh!)无法执行,因为该字段从技术上讲,该值并未从其默认值 0.00 更改。怎么办?
PS:抱歉标题太糟糕了,请随时改进:)
编辑:
如果有人需要看看函数是怎么变成的:
def onchange_warning(self, cr, uid, ids, result, lower, upper, context=None): res={} flag = False if float(result) < lower or float(result) > upper: flag = True res = {'warning': flag} return {'value': res}
result 现在是 fields.char
【问题讨论】: