2012-01-14 4 views
16

내가 장고에 새로운 오전 나는 내가 알고 싶은 것은 장고장고 양식 드롭 다운 목록

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 

에서 양식 모듈을 사용하여 양식을 만들 수있는 간단한 양식을 만들려는 문서에 따라 한 달에서 31 일까지 일의 드롭 다운 목록을 만드는 방법?

일부는 양식 서식 파일에서 javascript를 사용하여 수행했는데, 장고에서 수행 할 수 있습니까?

답변

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

멋진이 가능 목록의 시작 ("*", "모든") 같은 것을 하나 개 더 많은 가치를 추가하는 것입니다. – krisdigitx

+4

물론, 그냥 목록에 추가하십시오 :'choices = [("*", "Every")] + [(x, x) x 범위의 (1, 32)] ' –

+0

그 유지에 감사드립니다! – krisdigitx

-1

당신은 수동으로 실시 필드를 렌더링하는 데 선택하여 시작할 수 있습니다. 간단한 예 : -

{% 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에서 복사) 드롭 다운 목록을 만들 수와 관계있는 클래스를 적용해야 어떤 스타일이없는 형태를 렌더링 : -

<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>