2016-11-03 69 views
0

我正在使用Django,我想在我的数据库中设置一个字段,只允许5个整数长的数字。我找到了max_length,有没有长度?将模型字段的长度设置为5的长度

这里是我的代码

zip_code = models.IntegerField(max_length=5) 

有没有办法来

zip_code = models.IntegerField(length=5) 

强制用户输入5个号码。

+1

我会使用char字段,然后验证所有字符都是数字 –

+0

但要回答实际问题,说一个数字最多可以有5位数字,就是说它的最大值是99999,所以您可以使用['MaxValueValidator'](https://docs.djangoproject.com/en/1.10/ref/validators/#maxvaluevalidator)。 –

回答

3

使用max_lengthIntegerField没有意义。

如果您要存储邮政编码,最好使用CharField,以便存储以零开头的邮政编码。

CharFields没有min_length选项,但Django确实有MinLengthValidator。但是,使用RegexValidator会更简单,那么您可以使用正则表达式来仅允许数字,并检查输入的长度是5位数。

zip_code = models.CharField(max_length=5, validators=[RegexValidator(r'^[0-9]{5}$')]) 

另一种选择是从django-localflavor使用USZipCodeField