2016-11-03 7 views
0

장고를 사용하고 있으며 내 데이터베이스에서 내 필드 중 하나를 5 개의 정수만 허용하도록 설정하려고합니다. max_length를 찾았습니다. 길이가 있습니까?모델 필드의 길이를 5 길이로 설정

여기에 5 개 개의 번호를 입력

zip_code = models.IntegerField(length=5) 

강제로 사용자에게 방법이 있나요 내 코드

zip_code = models.IntegerField(max_length=5) 

입니다.

+1

나는 char 필드를 사용하고 모든 문자가 숫자임을 확인합니다. –

+0

실제 질문에 대답하려면 숫자가 최대 5 자리 숫자를 가질 수 있다고 말하면 최대 값은 99999라고 말하면서 사용할 수 있습니다. ['MaxValueValidator'] (https://docs.djangoproject.com/en/1.10/ref/validators/#maxvaluevalidator). –

답변

3

max_lengthIntegerField을 사용하는 것은 의미가 없습니다.

우편 번호를 저장하는 경우 0으로 시작하는 우편 번호를 저장할 수 있도록 CharField을 사용하는 것이 좋습니다.

CharFields에는 min_length 옵션이 없지만 Django는 MinLengthValidator입니다. 그러나 RegexValidator을 사용하는 것이 더 간단 할 것입니다. 그런 다음 정규식을 사용하여 숫자 만 허용하고 입력 값이 정확히 5 자리 길이인지 확인하십시오.

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

또 다른 옵션은 django-localflavor에서 USZipCodeField을 사용하는 것입니다.

관련 문제