UserError在try-odoo 9和10中返回tuple而不是string

时间:2016-11-29 11:51:45

标签: exception openerp alert


这是我的代码

try:
     raise UserError(_('foo'))
except Exception as e:
     raise UserError(_(str(e)))

警告框显示(u'foo',无)而不是 foo

  

警告
      (u'foo',无)

     

[OK]

但例外情况正确显示了 实施例

try:
     print 100 / 0
     raise UserError(_('foo'))
except Exception as e:
     raise UserError(_(str(e)))

结果是

  

警告
  整数除法或模数为零
  的 [OK]

这个问题只在try中。 请告诉我我该怎么办?

1 个答案:

答案 0 :(得分:0)

我通过parse_tuple()函数解决了。

# ...
except Exception as e:
    parsed = parse_tuple(e)
    if parsed:
        raise UserError(_(str(parsed[0])))
    raise UserError(_(str(e)))

编辑:

raise UserError(e.args[0])