Django

2012-09-25 20 views
5

में 'रिक्त स्थान भरें' फ़ॉर्म कैसे बनाएं, मैं Django में 'रिक्त स्थान भरें' क्विज़ बनाना चाहता हूं।Django

उदाहरण प्रश्न है "अपने उत्तरों __ और __ रखें।"

तो मूल रूप से, मुझे एक आउटपुट चाहिए जो "__" फ़ील्ड को इनपुट फ़ील्ड के साथ बदल देगा।

इसके अलावा, मैं चाहता हूं कि इनपुट फ़ील्ड का नाम 'नाम' हो। उदाहरण:

<input id="id_1" type="text" name="blank[]" /> 
<input id="id_2" type="text" name="blank[]" /> 

रिक्त फ़ील्ड की संख्या अनंत (हो सकती है) अनंत है। Django.forms का उपयोग कर इसके बारे में कैसे जाना है?

धन्यवाद।

+1

आपको पता चलेगा फ़ॉर्म तत्काल समय पर आपको कितने रिक्त स्थान चाहिए? –

+4

प्रारूपों का उपयोग करें: https://docs.djangoproject.com/en/dev/topics/forms/formsets/ –

+0

रिक्त फ़ील्ड की संख्या अज्ञात है। यह दिए गए प्रश्न के "__" की संख्या पर निर्भर करता है। अब फॉर्मेट्स में देख रहे हैं, और देखें कि मैं उनका उपयोग कैसे कर सकता हूं। धन्यवाद! – CiB

उत्तर

0

आपके पास फ़ील्ड की एक सूची है जिस पर आपको प्रश्नोत्तरी प्रस्तुत करने की आवश्यकता है, जैसा कि मैं समझता हूं। सूची के साथ तो यह की तरह लग रही:

questions = (
    ('Place your 1 answers %s and %s.', ('field_1_1', 'field_2_2')), 
    ('Place your 2 answers %s and %s.', ('field_2_1', 'field_2_2')), 
) 

आप इस तरह हर क्षेत्र के लिए प्रपत्र बना सकते हैं: इस पर डाक समान के बाद

class QuizzForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     super(QuizzForm, self).__init__(*args, **kwargs) 
     for question in questions: 
      for field in question[1]: 
       self.fields[field] = forms.ChoiceField() 

और पहुँच क्षेत्रों:

if form.is_valid(): 
    for question in questions: 
     for field in question[1]: 
      answer = form.cleanded_data.get(field)