2012-08-08 2 views
3

양식에 매우 특정한 HTML 디자인이 있으므로 HTML로 작성해야합니다. 기본 양식 렌더러는 사용하지 않습니다.Django : SelectDateWidget의 각 subselect 값 가져 오기

이 SelectDateWidget을 장고 양식에 설정했습니다. SelectDateWidget을 제외하고 모두 잘 작동합니다. 양식이 유효하지 않은 경우 모든 관련 값을 수집하고 사용자 정의 HTML 필드를 다시 채 웁니다. 문제는 내 템플릿에서 SelectDateWidget의 값을 가져올 수없는 것입니다.

form.mydate_day.value, form.mydate.day_value 등과 같은 것들을 시도했지만 아무 것도 포함하지 않은 것으로 보입니다.

아무도 저에게 도움이 될 수 있습니까? 감사합니다. . 요청으로

, 모델 :

class Subscriber(models.Model): 
    civilite = models.CharField(max_length=5, verbose_name='Civilite',choices=(('Mlle','Mademoiselle'),('M.','Monsieur'),('Mme','Madame'))) 
    email = models.EmailField(max_length=255, verbose_name='Email', unique=True) 
    nom = models.CharField(max_length=60, verbose_name='Nom') 
    prenom = models.CharField(max_length=60, verbose_name='Prenom') 
    ville = models.CharField(max_length=50,verbose_name='Ville') 
    cp = models.CharField(max_length=5,verbose_name='Code Postal',validators=[RegexValidator(regex='^\d{5}$')]) 
    date_naissance = models.DateField(auto_now_add=False) 
    optin = models.BooleanField(default=True,verbose_name='Optin') 
    date_inscription = models.DateField(auto_now_add=True) 

형태 :

class SubscriberForm(ModelForm): 
    class Meta: 
    model = Subscriber 
    widgets = { 
     'civilite': forms.RadioSelect(), 
     'date_naissance': extras.SelectDateWidget(years=range(1994,1900,-1)), 
    } 

뷰 :

def index(request): 
    if request.method == 'POST': 
    form = SubscriberForm(request.POST) 
    if form.is_valid(): 
     form.save() 
     return HttpResponseRedirect('/coreg.html') 
    else: 
    form = SubscriberForm() 
    return render(request,'index.html', {'form':form,'days':range(1,31),'months':range(1,12),'years':range(1994,1900,-1)}) 

템플릿 :

<label class="lbl" for="jour">Date de naissance :</label> 
    <div class="select {% if form.date_naissance.errors %}error{% endif %}"><span> 
     <select name="date_naissance_day" id="jour"> 
     <option value="--">J</option> 
     {% for i in days %} 
      <option value="{{i}}" {% if form.date_naissance_day.value == i %}selected{% endif %}>{{i}}</option> 
     {% endfor %} 
     </select> 
    </span></div> 
    <div class="select"><span> 
     <select name="date_naissance_month" id="mois"> 
     <option value="--">M</option> 
     {% for i in months %} 
      <option value="{{i}}" {% if form.date_naissance_month.value == i %}selected{% endif %}>{{i}}</option> 
     {% endfor %} 
     </select> 
    </span></div> 
    <div class="select last"><span> 
     <select name="date_naissance_year" id="annee"> 
     <option value="--">A</option> 
     {% for i in years %} 
      <option value="{{i}}" {% if form.date_naissance_year.value == i %}selected{% endif %}>{{i}}</option> 
     {% endfor %} 
     </select> 
    </span></div> 
    <br clear="all" /> 
+0

좋아, 그것은 제거되고 있어요. 그럼 : HELLO :) – user1159791

+0

어떻게 양식을 구현했으며 템플릿에 어떻게 표시하고 있습니까? –

+0

거기에, 편집 된 게시물 – user1159791

답변

0

당신은 같은 form.data 사용할 수 있습니다 어떻게 든 내가 "안녕하세요"내 게시물의 시작 부분에서 말할 수 없다

{% if form.data.date_naissance_day == i %}selected{% endif %}