Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
1 Відповісти
3930 Переглядів

Hi, I have a scenario where I need to validate a email address whether it is valid or not. For validating I have used the following code.

hr_view.xml:

<field name="work_email" widget="email" on_change="onchange_work_email(work_email)"/>

hr.py

def onchange_work_email(self, cr, uid, ids, work_email): if re.match("^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$", work_email) != None: return True else: raise osv.except_osv(_('Invalid Email'), _('Please enter a valid email address'))

But I got No handler found error. I made changes in only above two files, Did i need to import regular expressions ? what is the error ? Any appreciate suggestions

Аватар
Відмінити
Найкраща відповідь

hii,


here your py updated code 
from odoo import models, fields, api

from odoo.exceptions import ValidationError

import re


class HrEmployee(models.Model):

    _inherit = 'hr.employee'


    work_email = fields.Char(string="Work Email")


    @api.onchange('work_email')

    def _onchange_work_email(self):

        if self.work_email:

            email = self.work_email.strip()

            pattern = r'^.+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,}$'

            if not re.match(pattern, email):

                raise ValidationError("Please enter a valid email address.")


XML (View) – Do NOT add on_change in XML

Just define the field like normal:

<field name="work_email"/>

Odoo will trigger the @api.onchange automatically when the field changes in the UI.

i hope it is use full

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
1
вер. 19
10783
3
груд. 23
45965
0
бер. 15
3802
0
бер. 15
3914
1
груд. 22
3659