2017-08-30 89 views
0

目前,我有以下兩個下拉式菜單來顯示年份和周,但我希望分別顯示這些菜單中的當前年份和當前周。如何在Django中設置下拉菜單的默認值?

Django的形式

from django import forms 

class DropDownMenuForm(forms.Form): 
    week = forms.ChoiceField(choices=[(x,x) for x in range (1,53)]) 
    year = forms.ChoiceField(choices=[(x,x) for x in range (2016,2021)]) 

模板顯示菜單

<form id="search_dates" method="POST" action="{{ action }}"> {% csrf_token %} 
    <div class="row"> 
     <div style="display:inline-block"> 
      <h6>Select year</h6> 
       <select name="select_year"> 
        <option value={{form.year}}></option> 
       </select> 
     </div> 
     <div style="display:inline-block"> 
      <h6>Select week</h6> 
      <select name="select_week"> 
       <option value={{form.week}}></option> 
      </select> 
     </div> 
     <button type="submit">Search</button> 
    </div> 
</form> 

顯示當前周和年

from datetime import date 
date.today().isocalendar()[1] 
date.today().year 

如何連接將當前的周和年代碼與模板一起顯示,以便我可以在下拉菜單中看到當前選擇的年份和週數?

回答

2

您可以爲表單字段設置initial值:

from datetime import date 
from django import forms 

class DropDownMenuForm(forms.Form): 
    week = forms.ChoiceField(choices=[(x,x) for x in range (1,53)], initial=date.today().isocalendar()[1]) 
    year = forms.ChoiceField(choices=[(x,x) for x in range (2016,2021)], initial=date.today().year) 
+0

工作就像一個魅力! –

0

您可以使用initial =「」屬性設置默認值。見下面的例子從Django文檔

Django Docs

from django import forms 
class CommentForm(forms.Form): 
    name = forms.CharField(initial='Your name') 
    url = forms.URLField(initial='http://') 
    comment = forms.CharField() 
f = CommentForm(auto_id=False) 
print(f) 
<tr><th>Name:</th><td><input type="text" name="name" value="Your name" required /></td></tr> 
<tr><th>Url:</th><td><input type="url" name="url" value="http://" required /></td></tr> 
<tr><th>Comment:</th><td><input type="text" name="comment" required /> 
</td></tr>