首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只接受IntegerField中的11位数字(不少于11位,不超过11位)

只接受IntegerField中的11位数字(不少于11位,不超过11位)
EN

Stack Overflow用户
提问于 2014-03-24 12:27:36
回答 2查看 2K关注 0票数 1

我有一个IntegerField,我希望输入只接受11位/数字的值。

我试图在字段上做一个regex验证器,但我的问题是当我尝试使用该字段创建一个模型表单时。只有当值小于或等于10位时,我才会得到一个验证错误,但是如果我尝试一个12位以上的值,我就不会得到任何验证错误。

这是我的模型字段:

代码语言:javascript
复制
number =  models.IntegerField(max_length=11, validators=[RegexValidator(r'\d{11,11}','Number must be 11 digits','Invalid number')])

如果值大于11位数,如何才能得到验证错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-24 12:30:08

不确定django语法,但您必须使用锚:

代码语言:javascript
复制
r'^\d{11}$'
票数 5
EN

Stack Overflow用户

发布于 2014-03-24 18:15:04

考虑使用min_length kwarg --它的工作方式与您想象的完全一样:

代码语言:javascript
复制
class YourModel(models.Model):
    number = models.IntegerField(max_length=11, min_length=11,
        validators=[RegexValidator(r'\d{11,11}',
            'Number must be 11 digits', 'Invalid number')])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22609366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档