2010-03-17 40 views
14

Tại mẫu của tôi, tôi muốn lặp qua tất cả các lỗi biểu mẫu, bao gồm cả các lỗi không thuộc về một trường cụ thể. (Có nghĩa là cho form.errors, nó cũng sẽ hiển thị cho __all__ lỗi là tốt)Django, lặp qua tất cả các lỗi biểu mẫu

Tôi đã thử một vài phiên bản, Ie:

<div id="msg"> 
    {% if form.errors %} 
    <div class="error"> 
    <p><span>ERROR</span></p> 
    <ul> 
    {% for key,value in form.errors %} 
    {% for error in value %} 
    <li>{{ error }}</li> 
    {% endfor %} 
    {% endfor %} 
    </ul> 
    </div> 
    {% endif %} 
</div> 

Vẫn không có thành tích, tôi sẽ biết ơn đối với bất cứ đề nghị.

Trả lời

27

Lỗi biểu mẫu ở Django được triển khai dưới dạng phiên bản ErrorDict (chỉ là lớp con của dict với các tính năng bổ sung). Hãy thử điều chỉnh nhỏ đối với mẫu của bạn cho cú pháp vòng lặp:

{% for key, value in form.errors.items %} 
14

Bạn có, tìm kiếm form.non_field_errors không? Đó là cách bạn sẽ có quyền truy cập vào các lỗi không được liên kết với một trường cụ thể.

{% if form.non_field_errors %} 
<ul> 
    {{ form.non_field_errors.as_ul }} 
</ul> 
{% endif %} 

cũng như ví dụ khác. Tìm kiếm form.non_field_errors

+1

Cảm ơn bạn đã hiển thị biểu mẫu.non_field_errors! – Hellnar

Các vấn đề liên quan