2013-05-22 5 views
6

मैं इस तरह wtforms के साथ एक एचटीएमएल प्रपत्र पैदा कर रहा हूँ:WTForms RadioField मूलभूत मूल्यों

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default=2, validators=[Required()]) 

जब मैं अब संपादित फॉर्म को खोलने, मैं मिलता है:

<div class="control-group"> 
    {% for subfield in form.time_offset %} 
    <label class="radio"> 
     {{ subfield }} 
     {{ subfield.label }} 
    </label> 
    {% endfor %} 
</div> 

मेरे प्रपत्र वर्ग इस तरह है एसक्यूएल के माध्यम से मान 1 या 2 - मैं निर्दिष्ट रेडियोधन कैसे पूर्व निर्धारित कर सकता हूं?

+0

आप रूपों जिसके लिए कारणों आपको बस इतना करना है कि html में चाहते हैं पर डिफ़ॉल्ट सेट करना चाहते हैं? क्या आप दो डिफ़ॉल्ट मान चाहते हैं? – Denis

+0

निर्माण प्रपत्र पर, मैंने कक्षा में, जैसा कि आप देख सकते हैं, डिफ़ॉल्ट सेट करते हैं। लेकिन अब मैं एक संपादन फॉर्म बना रहा हूं और वहां इसे पूर्व-चयनित होना चाहिए। जैसे "नर/मादा" और जब मुझे डीबी से मूल्य 'एम' मिला, तो पुरुष का चयन किया जाना चाहिए ... मैं यह कैसे कर सकता हूं? – Kilrathy

+0

डिफ़ॉल्ट = yourObjectFromDB.sex ???? – Denis

उत्तर

2

तो मैं समझता हूँ कि आपके सवाल का ठीक से, आप प्रपत्र एक पूर्व चयनित विकल्प (बजाय एक डिफ़ॉल्ट विकल्प लौटने अगर कोई मूल्य नहीं फार्म के लिए प्रस्तुत किया जाता है) के साथ प्रस्तुत करना चाहते हैं ...

आप क्या कर सकते हैं

myform = SN4639(time_offset='2') 

और फिर अपने टेम्पलेट के लिए रवाना myform पारित प्रदान करने की: कर पूर्व चयनित मूल्य सेट करते समय प्रपत्र का निर्माण है।

0

Form.__init__ एक कीवर्ड तर्क obj= लेता है जो किसी भी फॉर्मडाटा या अन्य डिफ़ॉल्ट प्रदान किए जाने पर दिए गए ऑब्जेक्ट से फ़ॉर्म को पॉप्युलेट करेगा। डेटाबेस से परिणाम पास करें और इसे काम करना चाहिए।

5

डिफ़ॉल्ट = 2 जरूरतों प्रकार स्ट्रिंग की हो, इंट नहीं:

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default='2', validators=[Required()]) 
संबंधित मुद्दे