【问题标题】:Odoo 10 : Catch the UserError and show it to webpageOdoo 10:捕获 UserError 并将其显示到网页
【发布时间】:2018-11-02 15:01:26
【问题描述】:

我有一个控制器,它调用 models.py 中的 action_approve 函数,最后返回一个网页:

class Holiday(http.Controller):
    @http.route('/Approve', auth='public',type='http', methods=['GET'], website=True)
    def index(self,resid):

        record = http.request.env['hr.holidays'].search([('id', '=', resid)])
        print str(record)
        result=record.action_approve()
        return http.request.render('holiday.approve_page')

这是具有 UserError 语句的 action_approve 函数:

@api.multi
    def action_approve(self):
        # if double_validation: this method is the first approval approval
        # if not double_validation: this method calls action_validate() below
        print "holiday calleds"
        if not self.env.user.has_group('hr_holidays.group_hr_holidays_manager'):
            raise UserError(_('Only Leads can approve leave requests.'))
            return False
        manager = self.env['hr.employee'].search([('user_id', '=', self.env.uid)], limit=1)

        notification=Notification()
        notification.notifyEmployee(self,'Approved')

        for holiday in self:
            if holiday.state != 'confirm':
                raise UserError(_('Leave request must be confirmed ("To Approve") in order to approve it.'))
                return False
            if holiday.double_validation:
                return holiday.write({'state': 'validate1', 'manager_id': manager.id if manager else False})
            else:
                holiday.action_validate()

我想捕捉这个 UserError 消息并将它们显示在网页上给用户。我该怎么做?

【问题讨论】:

    标签: python error-handling controller odoo webpage


    【解决方案1】:

    这段代码有效:

    try:
                record.action_approve()
    
    except UserError,e:
                return http.request.render('holiday.approve_page', {'errorMsg': e[0]})
    

    【讨论】:

      猜你喜欢
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2015-11-13
      • 2023-01-30
      • 2013-07-11
      • 1970-01-01
      相关资源
      最近更新 更多