2012-01-14 8 views
16

私はジャンゴに新しいですし、私は私が私が知りたいことはあるジャンゴDjangoのフォームのドロップダウンリスト

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までのリストを作成する方法は?

フォームテンプレートにjavascriptを使用している人もいますが、これはdjangoで行うことができますか?

答えて

38

デフォルトでselectのhtml要素をレンダリングするChoiceFieldを探しています。 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

クールは、それは、リストの先頭に(「*」、「すべて」)のようなものを1つのより多くの価値を追加することが可能です。 – krisdigitx

+4

確かに、それをリストに追加するだけです。 'choices = [(" * "、" Every ")] +(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ドロップダウンCSSからコピー)ドロップダウンリストを作成するreleventクラスを適用する必要が任意のスタイリングのないフォームをレンダリングします: -

<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> 
2組み合わせ

: - 働い

<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> 
関連する問題