如何在错过必填字段时显示错误,如错误?

时间:2018-03-07 08:11:51

标签: notifications odoo sweetalert

我是odoo 11的新手,我想显示一个自定义错误弹出窗口,但是我希望将它显示为当我们错过必填字段时显示的弹出错误,而ValidationError无法做到这一点。 那可能吗 ?如果没有,是否可以使用JavaScript api进行甜蜜警报等通知?

5 个答案:

答案 0 :(得分:1)

您可以按照以下方法。

@api.constrains('field_name')
def _check_field_name(self):
    for record in self:
        if not record.field_name: # or your conditions
        raise ValidationError(_('Error COntext'))

首先,您无法在不填写必填字段的情况下保存表单。如果你试图保存,你会得到一个警告,但不能保存。

答案 1 :(得分:0)

是的,您可以使用 ValidationError 发出警报,但为此您需要覆盖create和write方法并需要检查此字段的值,如果它为空,则可以引发ValidationError警报。 / p>

答案 2 :(得分:0)

你无法通过validationerror实现这一点,因为框架不会传递值直到它满足为止,因此创建&写方法不会被调用。

您需要在JavaScript中进行更改根据需要改变行为。

答案 3 :(得分:0)

您可以使用以下javascript代码显示与错过必填字段时相同的错误:

this.do_warn(_t("The following fields are invalid :"), "msg");

您也可以使用SweetAlert,只需将javascript添加到您的模块中。

答案 4 :(得分:0)

在Odoo 11上,如果你想

  • 通过Python引发错误

    # Import the exceptions from odoo
    from odoo import exceptions
    
    # Then somewhere in your code
    raise exceptions.ValidationError('Your error message here!')
    
    # Or more generic error by
    raise exceptions.UserError('This is not a ValidationError.')
    
  • 通过Javascript进行do_warn(通知)

    // Maybe inside your Widget
    var self = this;
    self.do_warn('Your title', 'Your message')