Openerp 当Odoo 8中出现警告时,不要停止执行

Openerp 当Odoo 8中出现警告时,不要停止执行,openerp,odoo-8,Openerp,Odoo 8,我有一个场景,我必须取消不同的任务,但要求是,如果任务状态未创建,它将显示弹出消息,但对于创建的其他任务,这些将被取消。 但是,当我在显示警告时立即执行时,它会停止执行,并且其他任务不会被取消。 下面是我的代码: @api.multi def cancel_tasks(self): remained_tasks = [] for record in self: if record.status_id.active and record.status_id.name

我有一个场景,我必须取消不同的任务,但要求是,如果任务状态未创建,它将显示弹出消息,但对于创建的其他任务,这些将被取消。 但是,当我在显示警告时立即执行时,它会停止执行,并且其他任务不会被取消。 下面是我的代码:

@api.multi
def cancel_tasks(self):
    remained_tasks = []
    for record in self:
        if record.status_id.active and record.status_id.name != 'Created':
            remained_tasks.append(record.name)

        if record.status_id.active and record.status_id.name == 'Created':
            record.action_cancel()
            self._cr.commit()

    if len(remained_tasks) > 0:
        msg = 'Invalid Status for Tasks'
        for tasks in remained_tasks:
            msg += ','+str(tasks)
        raise openerp.exceptions.Warning(msg)
问题是,如果任何任务未处于创建状态,则进程将停止,其他任务也无法取消

谢谢

更新:
如果添加行self._cr.commit(),则可以保存记录,但现在当您看到错误弹出窗口时,请按OK,然后需要手动刷新页面以查看最新状态。是否可以在弹出警告窗口中按“确定”按钮后立即刷新页面。

我自己没有尝试过此操作,但引发openerp.exceptions.RedirectWarning类型的异常可能就是您要查找的。您可以尝试将用户重定向到包含更新内容的页面。