“抛出异常”的版本间的差异
来自Odoo大V社-odoo中文开发手册
1360857908(讨论 | 贡献) |
1360857908(讨论 | 贡献) |
||
第1行: | 第1行: | ||
当有什么不对时,我们会想要中断程序并显示错误消息。这是通过抛出异常来完成。Odoo 提供可用在 Python 中的几个额外的异常类。这些都是最有用的例子︰ | 当有什么不对时,我们会想要中断程序并显示错误消息。这是通过抛出异常来完成。Odoo 提供可用在 Python 中的几个额外的异常类。这些都是最有用的例子︰ | ||
− | + | <nowiki> | |
from odoo import exceptions | from odoo import exceptions | ||
raise exceptions.Warning('Warning message') | raise exceptions.Warning('Warning message') | ||
raise exceptions.ValidationError('Not valid message') | raise exceptions.ValidationError('Not valid message') | ||
− | + | </nowiki> | |
警告消息也会中断执行,但听起来不像验证错误那么严重。虽然它不是最好的用户界面,我们利用这一点对Count按钮来向用户显示一条消息︰ | 警告消息也会中断执行,但听起来不像验证错误那么严重。虽然它不是最好的用户界面,我们利用这一点对Count按钮来向用户显示一条消息︰ | ||
− | + | <nowiki> | |
@api.multi | @api.multi | ||
def do_count_tasks(self): | def do_count_tasks(self): | ||
第13行: | 第13行: | ||
count = Task.search_count([('is done', '=', False)]) | count = Task.search_count([('is done', '=', False)]) | ||
raise exceptions.Warning('There are %d active tasks.' %count) | raise exceptions.Warning('There are %d active tasks.' %count) | ||
− | + | </nowiki> | |
作为一个侧边备注,它看起来像我们可以使用@api.model装饰,因为此方法不能操作self的记录集。但我们不能在这种情况下,从一个按钮调用方法。 | 作为一个侧边备注,它看起来像我们可以使用@api.model装饰,因为此方法不能操作self的记录集。但我们不能在这种情况下,从一个按钮调用方法。 |
2017年5月22日 (一) 15:26的版本
当有什么不对时,我们会想要中断程序并显示错误消息。这是通过抛出异常来完成。Odoo 提供可用在 Python 中的几个额外的异常类。这些都是最有用的例子︰
from odoo import exceptions raise exceptions.Warning('Warning message') raise exceptions.ValidationError('Not valid message')
警告消息也会中断执行,但听起来不像验证错误那么严重。虽然它不是最好的用户界面,我们利用这一点对Count按钮来向用户显示一条消息︰
@api.multi def do_count_tasks(self): Task = self.env['todo.task'] count = Task.search_count([('is done', '=', False)]) raise exceptions.Warning('There are %d active tasks.' %count)
作为一个侧边备注,它看起来像我们可以使用@api.model装饰,因为此方法不能操作self的记录集。但我们不能在这种情况下,从一个按钮调用方法。