2011-10-15 12 views
9

W Flask 0.8, wiem, że mogę uzyskać dostęp do poszczególnych pól formularza przy użyciu form.fieldname.data, ale czy istnieje prosty sposób na iterację wszystkich pól formularza? Buduję treść wiadomości e-mail i chciałbym zapętlić wszystkie pola i utworzyć wpis fieldname/value dla każdego, w przeciwieństwie do ręcznego budowania go, nazywając każde pole i dołączając.Iterowanie nad nadesłanymi polami formularza w kolbie?

Odpowiedz

23

Podejrzewam, że używasz WTForms.

Można iteracyjne nad formą danych:

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

Można iteracyjne nad wszystkie pola formularza:

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

Przedmiotem forma iterator zdefiniowane na nim:

{% 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 %} 

To jest od http://wtforms.simplecodes.com/docs/0.6/fields.html

Powiązane problemy