2014-03-24 1 views
1

저는 IntegerField를 사용합니다. 여기서는 입력이 11 자리/숫자의 값만 받아들이도록하고 싶습니다.IntegerField에서 11 자리 만 허용합니다 (11보다 작지 않고 11보다 많음)

필드에 정규식 유효성 검사기를 만들려고했지만 필드가있는 모델 양식을 만들 때 문제가 발생합니다. 값이 10 자리 이하인 경우에만 유효성 검사 오류가 발생하지만 12 자리 이상으로 값을 입력하면 유효성 검사 오류가 발생하지 않습니다. 여기

내 모델 필드 :

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

가 어떻게 값 이상 11 자리 인 경우는 내가 유효성 검사 오류를 얻을 수 ?

+0

만 수를 원하는 또는 문자?/ – Amitesh

+0

숫자/숫자 만 –

+0

사용자 정규식은 M42에서 제공합니다. 당신에게 적합합니다 – Amitesh

답변

3

장고 구문에 대한 확실하지,하지만 당신은 앵커를 사용해야합니다 :

r'^\d{11}$' 
0

min_length kwarg 사용을 고려 - 당신이 상상하는 것처럼 정확히 작동이 수행합니다

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')]) 
관련 문제