2017-08-30 13 views
0

bill_to2私は20以上な長さの値で、私のフォームを送信しようとするモデルフィールドmax_lengthは20です。私が手:DataError例外 - MAX_LENGTH

値をあまりにも長い間、様々なタイプのキャラクターのために(20 )/例外の種類:DataError

フォームの検証エラーの代わりに。理由は何ですか?

class InviteCandidateForm(forms.Form): 
    def __init__(self, user, *args, **kwargs): 
     super(InviteCandidateForm, self).__init__(*args, **kwargs) 
     self.user = user 
     if self.user.company.display_bill_to2: 
      self.fields['bill_to2'] = forms.CharField() 
      self.fields['bill_to2'].label = self.user.company.bill_to2_label 
      self.fields['bill_to2'].required = True 

     self.helper = FormHelper() 
     self.helper.form_method = 'post' 
     self.helper.layout = Layout(
      Fieldset(
       '', 
       'name', 
       'email', 
       'bill_to2', 
      ), 
      ButtonHolder(
       Submit('save', 'Send', css_class='button') 
      ) 
     ) 
     name = forms.CharField() 
     email = forms.EmailField() 

ビュー(それはdjango.views.generic.editから標準FormViewコントロールです):

def form_valid(self, form): 
    user = User() 
    user.email = form.cleaned_data['email'] 
    user.set_unusable_password() 
    user.name = form.cleaned_data['name'] 
    user.bill_to2 = form.cleaned_data.get('bill_to2', None) 
    user.save() 
    return super(InviteCandidateFormView, self).form_valid(form) 
+0

どこビューがありますか? –

+0

@DanielRosemanが最新の質問を更新しました –

答えて

0

私の推測では、あなたはそれを明示的に検証する必要があることを言わなかったということです。それがあなたのフォームを成功裏に通過してモデルに到達し、エラーが発生する理由です。ただ、max_lengthプロパティを追加

はあなたを助ける必要があります。

self.fields['bill_to2'] = forms.CharField(max_length=20) 
関連する問題