2012-09-20 171 views
1

如何將selectDateWidget日期和月份選項設置爲1月1日的默認值,但保持年份選項不變。selectdatewidget設置默認月份和日期

現在我做:

day = datetime.date.today() 
lessTime = forms.DateField(required=False, widget=SelectDateWidget(years=range(1980, 2013)), initial=day) 

但這種設置默認爲實際日期。我可以改變什麼來給我所需的默認選項?

在此先感謝

回答

0

創建自定義窗口小部件如MySelectDateWidget

class MySelectDateWidget(SelectDateWidget): 
    def render(self, name, value, attrs=None): 
     from collections import namedtuple 
     date_tweak = namedtuple('Date', 'year month day') 
     date_value = date_tweak(None, 1, 1) #tweak to cheat SelectDateWidget's 
            #render method which expects a datetime object 
     return super(MySelectDateWidget, self).render(name, date_value, attrs) 

,然後替換:

lessTime = forms.DateField(required=False,  
      widget=SelectDateWidget(years=range(1980, 2013)), initial=day) 

有:

lessTime = forms.DateField(required=False,   
          widget=MySelectDateWidget(years=range(1980, 2013))) 
+0

這在設置默認的偉大工程選項,但現在我的Django表單在提交後表示它無效。 form = ContactForm(request.POST) form.is_vaild() >>> form == False 我能做些什麼來改變它的工作? – Santiago

相關問題