Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在Odoo 10中输入错误的手机号码格式时显示警告消息_Python 2.7_Validation_Openerp_Warnings_Odoo 10 - Fatal编程技术网

Python 2.7 在Odoo 10中输入错误的手机号码格式时显示警告消息

Python 2.7 在Odoo 10中输入错误的手机号码格式时显示警告消息,python-2.7,validation,openerp,warnings,odoo-10,Python 2.7,Validation,Openerp,Warnings,Odoo 10,我有一个整数字段“is_mobile”。用户进入手机的地方。我想,当用户输入错误的手机号码格式,然后它会显示警告消息“无效的号码格式”,并形成不保存没有正确的格式。为此,我应用了代码,但它不是按照要求工作的 代码如下: is_mobile = fields.Integer("Mobile") @api.multi @api.constrains('is_mobile') def _check_phone_number(self): for rec in self

我有一个整数字段“is_mobile”。用户进入手机的地方。我想,当用户输入错误的手机号码格式,然后它会显示警告消息“无效的号码格式”,并形成不保存没有正确的格式。为此,我应用了代码,但它不是按照要求工作的

代码如下:

is_mobile = fields.Integer("Mobile")

@api.multi
    @api.constrains('is_mobile')
    def _check_phone_number(self):
        for rec in self:
            if rec.is_mobile and len(rec.is_mobile) != "^[0-9]{10}$" :
                raise ValidationError(_("Wrong value enter"))
            else:
                return False
        return {}
提前谢谢

@api.onchange('mobile')
def _onchange_mobile(self):
    if self.mobile:
        if re.match("^[0-9]\d{10}$", self.mobile) == None:
            raise ValidationError("Enter valid 10 digits Mobile number")
您可以使用onchange进行此操作。别忘了导入re


您可以使用onchange进行此操作。不要忘记导入re

如果您正在谈论验证,那么不需要在py中为其添加方法。只需在xml中添加type=“tel”。像这样

<input type="tel" name="phone"/>


您可以参考基本代码,了解我所说的具体内容。

如果您谈论的是验证,则无需在py中为其添加方法。只需在xml中添加type=“tel”。像这样

<input type="tel" name="phone"/>



你可以参考基本代码,你就知道我在说什么了。

自我表示你的手机号码:只需使用正则表达式进行检查,你不需要循环,当然也不需要同时执行这两个操作。我不想修改任何号码。我只想对格式进行验证(10位)。为什么你在手机号码中使用整型字段?你可以使用OnChange。你有新api的示例吗?这是一个免费的手机号码验证应用程序,可以自行表示你的手机号码:只需使用正则表达式进行检查,你不必循环,当然也不必同时执行这两个操作。我不想修复任何号码。我只想对格式(10位数字)进行验证。为什么在手机号码中使用整型字段?您可以使用OnChange。您有新api的示例吗?这是手机号码验证可用的免费应用程序,它显示以下错误“TypeError:预期的字符串或缓冲区”@PAWANSHARMA:将类型更改为char而不是integer如果更改整数类型,只需调用内置str将移动设备转换为字符串:
str(self.mobile)
Ok,现在我将字段类型从integer更改为char,当no.小于10时显示警告。但显示10位以上的“odoo服务器错误”。我希望低于和高于10它显示警告和形式不应该保存。只取整数值,而不是字符或其他任何值。但是
re.match(“^[0-9]{10}$”,self.mobile)
我认为这足以检查长度和数字。问题是,不允许使用其他字符保存电话号码显示以下错误“TypeError:预期字符串或缓冲区”@PAWANSHARMA:将类型更改为字符而不是整数如果更改整数类型,只需调用内置str将手机转换为字符串:
str(self.mobile)
Ok,现在我将字段类型从integer改为char,当no.小于10时显示警告。但显示10位以上的“odoo服务器错误”。我希望低于和高于10它显示警告和形式不应该保存。只取整数值,而不是字符或其他任何值。但是
re.match(“^[0-9]{10}$”,self.mobile)
我认为这足以检查长度和数字。有什么问题吗?不允许使用其他字符保存电话号码。使用此选项时,我的整数值用逗号分隔。这不符合我的要求。我只想验证手机号码(10位),否则显示“无效格式”。使用此选项时,在字段定义中添加大小,然后我的整数值用逗号分隔。这不符合我的要求。我只想验证手机号码(10位),否则显示“无效格式”。在字段定义中添加大小