1

form という名前のフォームがあり、エラー メッセージが存在する場合、最初のエラー メッセージだけを画面に表示したいとします。私はいくつかの調査を行いましたが、テンプレートにこれを入力することで、最初のエラー メッセージだけにアクセスできるようです。

{{ form.errors.0 }}

しかし、それは私にはうまくいかないようです。何も表示されません。フォーム エラーが発生した場合に最初のエラー メッセージだけが表示されるようにテンプレートを作成するにはどうすればよいですか? これが私が試したものです。

<html>
    <body>

    <form method="post" action="">{% csrf_token %}
        {{ form }}
    <input type="submit" value="Register"/>
    </form>

    {% if form.errors %}
            {{ form.errors.0 }}
        {% endif %}
    </body>
</html>

だから、私が欲しいのは、{{form.errors}} の最初のエラーだけを表示したいということです。変更するときは注意してください

{{ form.errors.0 }}

{{ form.errors }}

すべてのエラーが表示されますが、最初のエラー メッセージだけを表示したいのです。では、ドット表記が機能しない理由はありますか?

4

1 に答える 1

2

少なくとも StackOverflow の他の関連する質問によると、form.errors は辞書ではありません。

ジャンゴアクセスエラー

django:form.errorsの最初のエラーメッセージのみにアクセスする方法は?

本当に最初のエラーだけを取得する必要がある場合 (すべてのフィールド エラーが一緒になることに注意してください)、次のように値に変換してから最初の項目を取得することができます。

{{form.errors.values.0}}

また

{{form.errors.items.0}}

この 2 番目は、ラベルとエラー メッセージを含むタプルを返します。

于 2013-09-25T01:31:57.180 に答える