Показать ошибку проверки формата номера телефона на странице сайта odoo 12 - PullRequest
0 голосов
/ 24 сентября 2019

Я работаю над процессом регистрации для пользователя.Где я взял телефон у пользователя, прежде чем зарегистрироваться.И я хочу показать подтверждение при неправильном формате телефонного номера.

Мой код формата телефонного номера в файле контроллера указан ниже:

def passwordless_signup(self, values, qcontext):
    .
    .
    .
    if values['phone']:
        phone_fields = self._get_phone_fields_to_validate()
        for phone_field in phone_fields:
            number = values['phone']
            fmt_number = request.env['res.partner'].phone_format(number)
            request.params.update({phone_field: number})
    .
    .
    .
    return request.render("auth_signup.reset_password", qcontext)

В терминале Ubuntu я получаю ошибку ниже иЯ хочу показать это как подтверждение для пользователя:

File "/opt/odoo12/odoo/addons/phone_validation/tools/phone_validation.py", line 25, in phone_parse
    raise UserError(_('Invalid number %s: probably incorrect prefix') % number)
odoo.exceptions.UserError: ('Invalid number 4545545: probably incorrect prefix', '')

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

в phone_validation.py add: from odoo import exceptions и в методе _get_phone_fields_to_validate добавьте

if not {is_valid_phone}: raise exceptions.ValidationError('Invalid number %s: probably incorrect prefix' % {your_phone_value}) else: return {your_phone_value}

0 голосов
/ 25 сентября 2019

Необходимо перехватить исключение и добавить ключ error с сообщением об ошибке в качестве значения в словаре qcontext, чтобы отобразить его как предупреждение, предоставленное веб-интерфейсу.

if values['phone']:
    phone_fields = self._get_phone_fields_to_validate()
    for phone_field in phone_fields:
        number = values['phone']
        try:
            fmt_number = request.env['res.partner'].phone_format(number)
            request.params.update({phone_field: number})
        except Exception as e:
            qcontext['error'] = str(e)
...