2012-01-14 18 views
16

मैं Django के लिए नया हूँ और मैं मैं DjangoDjango रूप ड्रॉपडाउन सूची

from django import forms 

class CronForm(forms.Form): 
    name = forms.CharField(max_length=100) 
    email = forms.EmailField(required=False, label='Your e-mail address') 
    message = forms.CharField(widget=forms.Textarea) 

    def clean_message(self): 
     message = self.cleaned_data['message'] 
     num_words = len(message.split()) 
     if num_words < 4: 
      raise forms.ValidationError("Not enough words!") 
     return message 

से रूपों मॉड्यूल का उपयोग कर क्या मैं जानना चाहता हूँ है एक रूप बना सकते हैं, एक सरल रूप बनाना चाहते दस्तावेज़ के अनुसार महीने में दिनों की एक ड्रॉपडाउन सूची यानी 1 से 31 तक कैसे बनाएं?

कुछ ने इसे अपने फॉर्म टेम्पलेट में जावास्क्रिप्ट का उपयोग करके किया है, क्या यह डीजेंगो में किया जा सकता है?

उत्तर

38

आप ChoiceField की तलाश में हैं जो डिफ़ॉल्ट रूप से select HTML तत्व के रूप में प्रस्तुत करता है। https://docs.djangoproject.com/en/dev/ref/forms/fields/#choicefield

class CronForm(forms.Form): 
    days = forms.ChoiceField(choices=[(x, x) for x in range(1, 32)]) 
+0

शांत है कि काम किया है, यह सूची के शुरू में की तरह ("*", "हर") कुछ एक और मूल्य जोड़ने के लिए संभव है। – krisdigitx

+4

निश्चित रूप से, इसे सूची में जोड़ें :) 'विकल्प = [(" * "," हर ")] + [x, x) x में रेंज (1, 32)]' –

+0

उस यूजी के लिए धन्यवाद! – krisdigitx

-1

आप manualy क्षेत्रों रेंडर करने के लिए चुनने के द्वारा शुरू कर सकते हैं। एक साधारण उदाहरण: -

{% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }} {{ field }} 
      {% if field.help_text %} 
       <p class="help">{{ field.help_text|safe }}</p> 
      {% endif %} 
     </div> 
    {% endfor %} 

यह किसी भी स्टाइल के बिना प्रपत्र प्रस्तुत करना होगा तो आप इस सूची में नीचे एक बूंद बनाने के लिए प्रासंगिक वर्ग आवेदन करना होगा (W3C लटकती सीएसएस से नकल): -

<div class="dropdown"> 
    <button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Tutorials 
    <span class="caret"></span></button> 
    <ul class="dropdown-menu" role="menu" aria-labelledby="menu1"> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">HTML</a></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">JavaScript</a></li> 
     <li role="presentation" class="divider"></li> 
     <li role="presentation"><a role="menuitem" tabindex="-1" href="#">About Us</a></li> 
    </ul> 
    </div> 
</div> 

दो के संयोजन: -

<div class="dropdown"> 
     <button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Days 
      <span class="caret"></span></button> 
     <div class="fieldWrapper"> 
      <ul class="dropdown-menu" role="menu" aria-labelledby="menu1"> 
       {% for field in form %} 
        <li class="fieldWrapper"> 
         {{ field.errors }} 
         {{ field.label_tag }} {{ field }} 
         {% if field.help_text %} 
          <p class="help">{{ field.help_text|safe }}</p> 
         {% endif %} 
        </li> 
       {% endfor %} 
      </ul> 
     </div> 
    </div> 
संबंधित मुद्दे