Django フォームでは、フォームが有効かどうかを確認できます。
if form.is_valid():
return HttpResponseRedirect('/thanks/')
しかし、有効でない場合の対処方法がわかりません。エラー メッセージを含むフォームを返すにはどうすればよいですか? どの例にも「else」が表示されません。
ベストアンサー1
フォームが有効でない場合に同じビューをレンダリングする場合は、テンプレートで次のようにします。フォームエラーにアクセスするにはform.errors
。
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endfor %}
{% for error in form.non_field_errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
例:
def myView(request):
form = myForm(request.POST or None, request.FILES or None)
if request.method == 'POST':
if form.is_valid():
return HttpResponseRedirect('/thanks/')
return render(request, 'my_template.html', {'form': form})