2017-03-11 7 views
0

私はlogin.htmlとregister.htmlという2つの形式を持っています。私は同じ方法でテンプレートにエラーを表示しますが、動作しません。テンプレートにDjangoのエラーメッセージを表示していますか? - Not working

login.htmlと

<form method="post" action="" class="ui large form"> 
{% csrf_token %} 

    <div class="ui stacked segment"> 
    {% if not form.non_field_errors %} 
    <div class="required field"> 
     <label>Emailaddress</label> 
     {{ form.username }}    
    </div> 
    {% endif %} 

    {% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Emailaddress</label> 
     {{ form.username }}    
    </div> 
    {% endif %} 

    {% if not form.non_field_errors %} 
    <div class="required field"> 
     <label>Password</label> 
     {{ form.password }}    
    </div> 
    {% endif %} 

    {% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Password</label> 
     {{ form.password }}    
    </div> 
    {% endif %} 

    <small><p>{{ form.non_field_errors }}</p></small> 


    <input type="submit" name="" class="ui fluid large teal submit button" value="login"> 



    </div> 

</form> 

出力のスクリーンショット:

Non Error output

Error output

register.html

<form method="post" action="" class="ui large form"> 
{% csrf_token %} 
    <div class="ui stacked segment"> 
    {% if not form.non_field_errors %} 
    <div class="required field"> 
     <label>Emailaddress</label> 
     {{ form.email }} 
    </div> 
    {% endif %} 

    {% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Emailaddress</label> 
     {{ form.email }} 
     <p>{{ form.email.errors }}</p> 
    </div> 
    {% endif %} 

    {% if not form.non_field_errors %} 
    <div class="required field"> 
     <label>Password</label> 
     {{ form.password1 }} 
    </div> 
    {% endif %} 

    {% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Password</label> 
     {{ form.password1 }} 
     <p>{{ form.password1.errors }}</p> 
    </div> 
    {% endif %} 

    {% if not form.non_field_errors %} 
    <div class="required field"> 
     <label>Confirm Password</label> 
     {{ form.password2 }} 
    </div> 
    {% endif %} 

    {% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Confirm Password</label> 
     {{ form.password2 }} 
     <p>{{ form.password2.errors }}</p> 
    </div> 
    {% endif %} 
    <small><p>{{ form.non_field_errors }}</p></small> 

    <input type="submit" name="" class="ui fluid large teal submit button" value="Sign Up"> 
    </div> 

</form> 

今回はエラーメッセージが表示されません。何が間違っているのですか?

+0

あなたのビューを掲示も – itzMEonTV

+0

レジスタを作業されていないテンプレート明確にします.htmlは機能していますが、エラークラス内にエラーメッセージが表示されません。 – Rahul

+0

ログインと登録の両方のビューを表示するために質問を編集します。それは簡単に同じデバッグされます。 –

答えて

0

non_field_errors()は、その名前が示すとおり、フィールドに関連付けられていないエラー(docs)を示します。

Form.clean()オーバーライドによって発生したエラーは、特にどのフィールドにも関連付けられないことに注意してください。特殊な "フィールド"(すべて)に入り、必要に応じてnon_field_errors()メソッドからアクセスできます。

特定のフィールドにエラーがあるかどうかのロジックとして使用しないでください。あなたはこれを行うべきである:

{% if not form.email.errors %} 
    <div class="required field"> 
     <label>Emailaddress</label> 
     {{ form.email }} 
    </div> 
{% endif %} 

、あなたがregister.htmlで行うように、あなたのlogin.htmlに、あなたは{{ field.errors }}をレンダリングしていない:

{% if form.non_field_errors %} 
    <div class="required field error"> 
     <label>Emailaddress</label> 
     {{ form.username }} 

     {# This is missing #} 
     <p>{{ form.username.errors }}</p>  

    </div> 
{% endif %}