2009-11-17 35 views
6

Bất cứ khi nào bạn sử dụng thẻ {{form.field.errors}} trong mẫu Django, thông báo xác thực được hiển thị luôn được bao quanh với thẻ danh sách không theo thứ tự. Đây không phải là lý tưởng cho tôi. Tôi có thể sửa đổi html thông báo xác thực xung quanh cho một biểu mẫu từ gói có thể sử dụng lại không?Tùy chỉnh đầu ra html của hình thức xác thực của Django

+2

Lưu ý rằng danh sách không có thứ tự có lớp 'errorlist', vì vậy bạn có thể sử dụng CSS để định dạng danh sách như bạn muốn . – Alasdair

Trả lời

8

Từ các tài liệu django về looping over a form's fields:

{{ field.errors }}
Đầu ra một <ul class="errorlist"> chứa bất kỳ lỗi xác nhận tương ứng với lĩnh vực này. Bạn có thể tùy chỉnh bản trình bày của các lỗi với vòng lặp {% for error in field.errors %}. Trong trường hợp này, mỗi đối tượng trong vòng lặp là một chuỗi đơn giản chứa thông báo lỗi.

Vì vậy, ví dụ, để quấn mỗi lỗi trong <p> thẻ bạn sẽ làm gì:

{% for error in field.errors %} 
    <p>{{ error|escape }}</p>  
{% endfor %} 
+0

nó vẫn xuất ra dưới dạng li, thay vì chỉ chuỗi – DataGreed

+0

@DataGreed không theo tài liệu tôi đã liên kết ở trên: * Trong trường hợp này, mỗi đối tượng trong vòng lặp ** là một chuỗi đơn giản ** chứa thông báo lỗi. * – Alasdair

+0

Thực ra bạn phải lặp qua form.non_field_errors để nhận các chuỗi – DataGreed

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