odoo 中 "warning" 和 "UserError" 有什么区别?
What is the difference between "warning" and "UserError" in odoo?
警告:
warning = {
'title': _('Warning!'),
'message': _('Exists the discount limit'),
}
return {'warning': warning}
用户错误
raise UserError(_('Exists the discount limit'))
odoo中的Warning和UserError有什么区别
当 python 中出现异常时。它向上传播调用堆栈,直到它在 Odoo 上被处理。响应 Web 客户端调用的 RPC 层捕获所有异常,并且根据异常 class,它会在 Web 客户端上触发不同的可能行为。
UserError 将在其在 odoo.exceptions class 中定义的用户界面中显示错误消息。配方代码将 OSError 更改为 UserError 以确保以友好的方式显示消息。在所有情况下,当前数据库事务都会回滚。在 Odoo 9 和 10 中使用 UserError 来显示错误信息。
警告:在 Odoo 8 中,openerp.exception.Warning 在 9 和 10 中扮演了 UserError 的角色,它已被弃用,因为名称是欺骗性的(这是一个错误而不是警告)它与 python 内置警告 class 相撞,它是为了向后兼容而保留的,你应该在 odoo 中使用 UserError 9 和 10.
在你的情况下,我们 return 警告这意味着它只向用户显示警告消息,交易不会回滚。
简单回答一下,在odoo中两者是一样的。因为如果你签入 odoo/exception.py refer odoo exception here
它清楚地理解它是指 Warning 为 UserError。 odoo 警告在 odoo v9 和 v10 中被弃用,因为与 python 内置的歧义或冲突。
要获取有关 python 警告的信息,请参阅 python warning documentation。
所以建议使用odoo.exceptions.UserError而不是警告
A warning 是一个 python 关键字并且 UserError 在 Odoo 中使用,而在 odoo 中 warning 在 odoo 中被弃用v9 及以后。
所以我们在 Odoo 中使用了 UserError。
警告:
warning = {
'title': _('Warning!'),
'message': _('Exists the discount limit'),
}
return {'warning': warning}
用户错误
raise UserError(_('Exists the discount limit'))
odoo中的Warning和UserError有什么区别
当 python 中出现异常时。它向上传播调用堆栈,直到它在 Odoo 上被处理。响应 Web 客户端调用的 RPC 层捕获所有异常,并且根据异常 class,它会在 Web 客户端上触发不同的可能行为。
UserError 将在其在 odoo.exceptions class 中定义的用户界面中显示错误消息。配方代码将 OSError 更改为 UserError 以确保以友好的方式显示消息。在所有情况下,当前数据库事务都会回滚。在 Odoo 9 和 10 中使用 UserError 来显示错误信息。
警告:在 Odoo 8 中,openerp.exception.Warning 在 9 和 10 中扮演了 UserError 的角色,它已被弃用,因为名称是欺骗性的(这是一个错误而不是警告)它与 python 内置警告 class 相撞,它是为了向后兼容而保留的,你应该在 odoo 中使用 UserError 9 和 10.
在你的情况下,我们 return 警告这意味着它只向用户显示警告消息,交易不会回滚。
简单回答一下,在odoo中两者是一样的。因为如果你签入 odoo/exception.py refer odoo exception here
它清楚地理解它是指 Warning 为 UserError。 odoo 警告在 odoo v9 和 v10 中被弃用,因为与 python 内置的歧义或冲突。
要获取有关 python 警告的信息,请参阅 python warning documentation。
所以建议使用odoo.exceptions.UserError而不是警告
A warning 是一个 python 关键字并且 UserError 在 Odoo 中使用,而在 odoo 中 warning 在 odoo 中被弃用v9 及以后。
所以我们在 Odoo 中使用了 UserError。