验证手机号码 - Odoo

问题描述

在我的 xml 文件中,我在树结构下有以下字段。

<field name="phone"/>

我在表单结构下有以下组

<group>
<field name="phone" onchange="validate_phone(phone)" placeholder="Enter your mobile number"/>
</group>

在我的python文件中:


    @api.depends('phone')
    @api.onchange('phone')
    def validate_phone(self):
        if self.phone:
            match = re.match('^[0-9]\d{10}$',self.phone)
            if match == None:
               raise ValidationError('Invalid')

代码不会有任何错误,但仍然无法正常工作。 有人能帮我解决这个问题吗?

解决方法

首先不需要在xml中使用onchange属性,保持简单

<group>
    <field name="phone" placeholder="Enter your mobile number"/>
</group>

第二次尝试使用 onchange 装饰器

@api.onchange('phone')
def validate_phone(self):
    if self.phone:
        match = re.match('^[0-9]\d{10}$',self.phone)
        if not match:
           raise ValidationError('Invalid')