1
私のforms.validationerrorは表示されません。私の使っているフォームは以下の通りです。 if文が動作し、問題を検出してコンテンツを正常に出力します。 Stackoverflow上の既存のエラーが示すように、printステートメントに示されているように、コンテンツはNoneではありません。Django forms.VaildationErrorがクラスベースのビューに表示されません
class PollItemMessageAddForm(forms.ModelForm):
class Meta:
model = Message
fields = [
"content"
]
labels = {
'content': 'Add your comment',
}
widgets = {
'content': Textarea(attrs={'cols': 10, 'rows': 5}),
}
def __init__(self, *args, **kwargs):
# this line should be before a super call
self.request = kwargs.pop('request', None)
super(PollItemMessageAddForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'post'
self.helper.add_input(Submit('submit', value='Post', css_class='buttonspace btn-success'))
def clean_content(self):
content = self.cleaned_data.get("content")
if len(content) > 50:
print content
raise forms.ValidationError("Please limit your message to less the 50 characters")
return content
は、以下のエラーメッセージが表示されるはずです同じURLにリダイレクトするform.isvalidをスキップ私のクラスベースのビュー、中に私のviews.pyポスト文です。私はそれが役立つ場合、私のクラスベースのビューでdetailviewとformmixinを使用しています。トレースバックがないときにどこから問題が発生しているのかわかりません。どんな助けもありがとう。
return render(request, self.template_name, {'errors': form.errors, 'form':form})
をし、エラーが表示されますテンプレート内のテンプレートまたは{{ form.non_field_errors }}
にエラーを表示します。フォームが有効でない場合
def post(self, request, *args, **kwargs):
url = "/polls/" + str(self.get_object().id)
form = self.get_form()
if request.method == "POST":
if form.is_valid():
print "works"
return self.form_valid(form)
return HttpResponseRedirect(url)
あなたは50以上の文字列を渡していますか? – Exprator
len(content)を使って文字列の文字数を数えています。 – user3655574
あなたの行と列は5 * 10 = 50に掛け合うので、テキストエリアでは50文字以上も渡していないので、エラーはどうなりますか?len> 10をチェックし、 – Exprator