1. ホーム
  2. django

[解決済み] Django Forms: 有効でない場合、エラーメッセージとともにフォームを表示する

2022-06-03 13:35:05

質問

Django のフォームでは、フォームが有効であるかどうかをチェックすることができます。

if form.is_valid(): 
    return HttpResponseRedirect('/thanks/')

しかし、私はそれが有効でない場合、何をすべきかを見逃していますか?エラーメッセージとともにフォームを返すにはどうしたらいいのでしょうか?どの例にも"else"は見当たりません。

どのように解決するのですか?

フォームが有効でないときに同じビューを表示する場合、テンプレートでは次のようになります。 を使用してフォームエラーにアクセスします。 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})