2014-06-17 48 views
4

我在我的項目中使用Django Allauth進行用戶流。我已經成功創建了自己的一套模板,它們繼承自標準Allauth模板,並且它們可以工作95%。但是,出於某種原因,我沒有收到無效登錄錯誤。Django Allauth自定義登錄不會顯示錯誤

如果我爲用戶輸入'test @ email',我得到一個'請輸入一個有效的電子郵件地址'的錯誤,但是如果我輸入一個不正確的密碼,它只是重新加載頁面,但沒有錯誤出錯。我已經包含了我的模板,其中包含{{ form.login.errors }}{{ form.password.errors }}標籤。

所有的指導表示讚賞,謝謝。

模板:

<div id="search_container"> 

      <div id="search_box_content"> 
       {% block page_content %} 

         <h4>Login</h4> 

          <form class="" id="user-form" method="POST" action="{% url 'account_login' %}"> 

           {% csrf_token %} 
          <h1> {{ form.login.errors }}</h1> 
          <h1> {{ form.password.errors }}</h1> 

           <div class="input_class"> 

            <label for="login">Username: </label> 
          {{ form.login }} 
          </div> 

          <div class="input_class"> 
           <label for="password">Password: </label> 
           {{ form.password }} 
          </div> 
          <div class="input_class" id="forgot_pass"> 
           <label for="remember"> 
           Remember Me? </label> 
          {{ form.remember }} 
          </div> 
           {% if redirect_field_value %} 


           <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" /> 
           {% endif %} 

          <div id="modal_bottom_bar"> 

           <a class="button secondaryAction" id="forgot_pass" href="{% url 'account_reset_password' %}">Forgot your Password?</a> 

           <button class="primaryAction" id="login_submit" type="submit">Login</button></div> 
          </form> 

{% endblock %} 

      </div> 

     </div> 

回答

12

有些錯誤是不可領域的錯誤,如被上調了一些自定義的驗證,並且不包括在field.errors這些錯誤,而他們是在form.non_field_errors

因此,更好地使用該以顯示屬於字段的所有錯誤並自定義驗證,如果您手動呈現您的表單:

{% if form.errors %} 
    {% for field in form %} 
     {% for error in field.errors %} 
      <div class="alert alert-error"> 
       <strong>{{ error|escape }}</strong> 
      </div> 
     {% endfor %} 
    {% endfor %} 
    {% for error in form.non_field_errors %} 
     <div class="alert alert-error"> 
      <strong>{{ error|escape }}</strong> 
     </div> 
    {% endfor %} 
{% endif %} 
+1

will giv e你+10;) – cwhisperer