2011-10-15 42 views
9

Trong Flask 0.8, tôi biết tôi có thể truy cập các trường biểu mẫu riêng lẻ bằng cách sử dụng form.fieldname.data, nhưng có cách đơn giản để lặp qua tất cả các trường biểu mẫu không? Tôi đang xây dựng một nội dung thư điện tử và tôi muốn lặp lại tất cả các trường và tạo một mục nhập tên/giá trị cho mỗi trường, trái ngược với việc tạo thủ công nó bằng cách đặt tên cho từng trường và chắp thêm.Lặp lại các trường biểu mẫu đã gửi trong Flask?

Trả lời

23

Tôi nghi ngờ bạn đang sử dụng WTForms.

Bạn có thể duyệt qua hình thức dữ liệu:

for fieldname, value in form.data.items(): 
    pass 

Bạn có thể duyệt qua tất cả các lĩnh vực hình thức:

for field in form: 
    # these are available to you: 
    field.name 
    field.description 
    field.label.text 
    field.data 
7

Đối tượng hình thức đã một iterator xác định trên nó:

{% for field in form %} 
    <tr> 
    {% if field.type == "BooleanField" %} 
     <td></td> 
     <td>{{ field }} {{ field.label }}</td> 
    {% else %} 
     <td>{{ field.label }}</td> 
     <td>{{ field }}</td> 
    {% end %} 
    </tr> 
{% endfor %} 

Đây là từ http://wtforms.simplecodes.com/docs/0.6/fields.html

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