2016-12-15 43 views
1

我有下面的代码在我forms.py我想小部件获得手机提出了一个错误,如果输入的是不是数字,但它不工作。其他一切正常。为什么类型=数字没有在表单上填充错误?Django的形式部件号输入

class UserProfileForm(forms.ModelForm): 


    class Meta: 
     model = UserProfile 
     exclude = ('user',) 

     widgets = { 
      'first_name': forms.TextInput(attrs={'maxlength':100, 'required': True}), 
      'last_name': forms.TextInput(attrs={'maxlength': 100, 'required': True}), 
      'phone': forms.NumberInput(attrs={'minlength': 10, 'maxlength': 15, 'required': True, 'type': 'number',}),  
      'date_of_birth': forms.DateInput(attrs={'minlength': 10, 'maxlength': 10, 'required': True}), 

      'country': CountrySelectWidget(attrs={'country': 'CountrySelectWidget'}), 

     } 
+0

你的文档[NumberInput(https://docs.djangoproject.com/en/1.10/ref/forms/widgets/#django.forms.NumberInput)在阅读本? – ettanany

+0

@ettanany我已阅读它。你能否建议我如何才能得到表单来验证输入? – keno

回答

0

我试图部件获得手机提出了一个错误,如果输入的是 不是数字,但它不工作。

我怀疑你的电话号码字段没有定义为模型中的整数字段,如果是,验证检查将确保不输入非整数数据。

基于这个假设,你应该在骑马场,而不是小部件。无论是使用field_classes元属性或定义字段显式地

class UserProfileForm(forms.ModelForm): 
    phone = forms.IntegerField(validators = [custom_validator,]) 

它也可以让你如果需要使用自定义的验证。