1

djangoにフォームがあり、各フィールドの前にエラーを表示したいと思います。

問題は、form.field_name.errorsまたはを使用するform.errors.field_nameと、エラーが表示されないフィールドの1つで発生し、そのうちの1つだけで、テンプレートコードは次のようになります。

<table class="">
                <form action="" method="POST" enctype="multipart/form-data">

                    {% csrf_token %}

                    <div>
                        <div>{{ form.errors.competitor_name }}</div>
                        <br/>
                        <div>name:</div>
                        <div>{{ form.competitor_name }}</div>
                    </div>
                    <div>
                        <div>{{ form.errors.notional_code }}</div>
                        <br/>
                        <div>code:</div>
                        <div>{{ form.national_code }}</div>
                    </div>
                    <div>
                        <table id="filesContainer">
                            <tbody>
                            {% for form_ in formset.forms %}
                                <tr id="{{ form_.prefix }}-row">
                                    <td>{{ form_.file.label }}:</td>
                                    <td>{{ form_.file }}</td>
                                    <td></td>
                                </tr>
                            {% endfor %}
                            </tbody>
                        </table>
                        <p>
                            {{ formset.management_form }}
                        </p>
                    </div>
                    <div class="arsh-signup-row">
                        <input type="submit" value="SignUp" />
                    </div>
                </form>
            </table>

フィールドのエラーを表示するのに問題がありnational_codeます。

ブレークポイントを使用しましたが、エラーを正しい方法で追加していて、フォームに関するすべてが正常であることに完全に気付きました。テンプレートに問題があるようで、これが何であるかわかりません。

興味深いのは、このフィールドのエラーをページの他の部分に表示したい場合、それは問題ありません。すべて完了しましたが、このコードを使用すると、その特定の部分には表示されません。

<div>
                        <div>{{ form.errors.notional_code }}</div>
                        <br/>
                        <div>name:</div>
                        <div>{{ form.competitor_name }}</div>
                    </div>
                    <div>
                        <div>{{ form.errors.notional_code }}</div>
                        <br/>
                        <div>code:</div>
                        <div>{{ form.national_code }}</div>
                    </div>

欲しいものが見えます。最初は本当に面白いですが、今では混乱しています。

何かアドバイスをいただければ幸いです。

4

2 に答える 2

2

field_name.errorsフィールドごと にエラーが発生します。form.errorsフォーム全体にエラーが発生し、フィールドに固有ではありません。

以下のdjangoドキュメントのサンプルをここで参照してください

<form action="/contact/" method="post">
{% for field in form %}
    <div class="fieldWrapper">
        {{ field.errors }}
        {{ field.label_tag }}: {{ field }}
    </div>
{% endfor %}
<p><input type="submit" value="Send message" /></p>

于 2012-08-27T07:25:22.340 に答える
0

このコード行で問題は解決されます。

{% for field in form %} 
    <div class="row"> 
        <div class="error">{{ field.errors }}</div> 
        <br/> 
        <div class="lable">{{ field.label }}</div> 
        <div class="field">{{ field }}</div> 
    </div> 
{% endfor %}

;-)

于 2012-09-22T11:14:23.843 に答える