2013-09-21 68 views
1

我正在使用SelectDateWidget,並希望根據數據庫中的最大和最小日期值傳遞日期範圍。SelectDateWidget - 傳遞日期範圍

oldest = Item.objects.all().aggregate(Min('date'))['date__min'] 
start_year = Item.objects.get(date=oldest).date.year # 2012 

newest = Item.objects.all().aggregate(Max('date'))['date__max'] 
end_year = Item.objects.get(date=newest).date.year # 2013 


class MyForm(forms.Form): 
    date_range = forms.DateField(widget=SelectDateWidget(years=range(start_year, end_year))) 

以上僅顯示start_year。這是選擇的唯一選擇。

下面的這個很好用,而且他們對我來說看起來都差不多。

date_range = forms.DateField(widget=SelectDateWidget(years=range(2008, 2013))) 

有什麼建議嗎?

回答

2

你的範圍函數的感覺是關閉(不包括在名單本身,其限範圍的最後一個參數)

>> range(2012, 2013) 
.. [2012] 

您需要的偏移,如果你想包括2013,如

>> range(2012, 2014) 
.. [2012, 2013]