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

Tom*_*sen 1 python regex django django-models django-validation

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

我试图在该领域制作一个正则表达式验证器,但我的问题是当我尝试使用该领域制作模型表单时。如果值为 10 位或更少,我只会收到验证错误,但如果我尝试使用 12 位及以上的值,则不会收到任何验证错误。

这是我的模型字段:

number =  models.IntegerField(max_length=11, validators=[RegexValidator(r'\d{11,11}','Number must be 11 digits','Invalid number')])
Run Code Online (Sandbox Code Playgroud)

如果值超过 11 位,我该如何做到这一点,以便我收到验证错误?

Tot*_*oto 5

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

r'^\d{11}$'
Run Code Online (Sandbox Code Playgroud)