2011-06-24 7 views
10

वर्तमान में WTForms में तो जैसे क्षेत्र त्रुटियों लूप करने के लिए त्रुटियों आप का उपयोग करने की त्रुटियों हो रही: जब से मैं जो कोई रूप नहीं देखा गया का उपयोग करता है एक आराम आवेदन का निर्माण कर रहा हूँWTForms

for error in form.username.errors: 
     print error 

, मैं जाँच करने के लिए मजबूर कर रहा हूँ त्रुटि कहां स्थित है यह जानने के लिए सभी फॉर्म फ़ील्ड के माध्यम से।

है वहाँ एक रास्ता मैं की तरह कुछ कर सकता है:

for fieldName, errorMessage in form.errors: 
     ...do something 

उत्तर

22

वास्तविक form वस्तु एक errors विशेषता फ़ील्ड का नाम और एक शब्दकोश में उनके त्रुटियाँ हैं कि है। तो अगर आप कर सकता है:

{% for field in form.errors %} 
{% for error in form.errors[field] %} 
    <div class="alert alert-error"> 
     <strong>Error!</strong> {{error}} 
    </div> 
{% endfor %} 
{% endfor %} 
+2

'form.errors.items() 'पायथन 3 :-) – dthor

15

किसी के लिए बोतल टेम्पलेट्स में ऐसा करने के लिए देख पायथन 2:

{% for field, errors in form.errors.iteritems() %} 
<div class="alert alert-error"> 
    {{ form[field].label }}: {{ ', '.join(errors) }} 
</div> 
{% endfor %} 
12

बोतल टेम्पलेट्स के लिए एक सफाई घोल:

अजगर 3:

{% for field, errors in form.errors.items() %} 
<div class="alert alert-error"> 
    {{ form[field].label }}: {{ ', '.join(errors) }} 
</div> 
{% endfor %} 

for fieldName, errorMessages in form.errors.items(): 
    for err in errorMessages: 
     # do something with your errorMessages for fieldName 
+0

यह इस पृष्ठ पर सबसे अच्छा प्रयास है। लेकिन ऐसा लगता है कि किसी ने मेरे रूप में एक बकवास लिया। फॉर्म नामों का भी खुलासा करता है, मेरे अंत उपयोगकर्ताओं के लिए यह पता लगाने के लिए कि वास्तव में कौन सी cli_tel है ... हालांकि मैं केवल एक ही परवाह करता हूं जो परवाह करता है? –

+1

@ पीटररडा: यह बेवकूफ बात है ... त्रुटियों चर वास्तव में यह प्रदान नहीं करता है। आप इसे ऐसा कुछ कर सकते हैं जो मुझे लगता है: 'form [field] .name' – Wolph

+0

यदि आप python3 का उपयोग करते हैं, तो 'iteritems()' के बजाय 'आइटम्स()' का उपयोग करें। – pors

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