2011-10-15 9 views
9

फ्लास्क 0.8 में, मुझे पता है कि मैं form.fieldname.data का उपयोग कर व्यक्तिगत फॉर्म फ़ील्ड तक पहुंच सकता हूं, लेकिन क्या सभी फॉर्म फ़ील्ड पर पुन: प्रयास करने का एक आसान तरीका है? मैं एक ईमेल संदेश निकाय बना रहा हूं, और मैं सभी क्षेत्रों में लूप करना चाहता हूं और प्रत्येक फ़ील्ड नामकरण और संलग्न करने के द्वारा इसे मैन्युअल रूप से बनाने के विरोध में, प्रत्येक के लिए फ़ील्डनाम/मान प्रविष्टि बनाना चाहता हूं।फ्लास्क में सबमिट किए गए फॉर्म फ़ील्ड पर इटरेटिंग?

उत्तर

23

मुझे संदेह है कि आप WTForms का उपयोग कर रहे हैं।

आप प्रपत्र डेटा पर पुनरावृति कर सकते हैं:

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

आप सभी प्रपत्र फ़ील्ड्स से अधिक पुनरावृति कर सकते हैं:

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

प्रपत्र वस्तु पुनरावर्तक उस पर परिभाषित किया गया है:

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

यह http://wtforms.simplecodes.com/docs/0.6/fields.html

से है
संबंधित मुद्दे