2013-06-29 33 views
0

我正在嘗試創建一個ModelChoiceField,它的選項基於查找數據庫中許多帖子中存在的年份。根據表中最小和最大年份創建選擇模型表單?

因此,例如,我的數據庫中有一些文章與DateTime字段存儲在一起。我試圖做的是創建一個基於郵件列表中存在年數範圍的選項。

ie

我們有一個帖子,其中的字段爲date_created。該值是

2013年6月27日三時21分15秒

,我們有另一個與價值

2012-06-27 3時00分二十秒

我希望顯示一個表格,其中包含每個在郵政表中顯示的年份的選項,而且沒有重複;

<option value="2013">2013</option> 
<option value="2014">2014</option> 

ModelChoiceField是否允許我用單個查詢來做到這一點,還是我需要處理和構建一個包含年份的列表。

+0

如果你有一個模型「年」,你可能必須通過Year.objecs.all()[查詢集],但我認爲你沒有。 – lalo

回答

0

ModelChoiceField用於模型選擇,基於外鍵。我想你必須使用用戶ChoiceField並在運行時生成選項。

告訴我你在哪裏使用表格,也許可以告訴你該怎麼做。

1

感謝lalo指引我在正確的方向。我設法使用以下方法解決它;

years_list = [] 
choices = [] 
year_list = Post.objects.all().values_list('date_created').distinct() 

for years_avail in year_list: 
    years_list.append(years_avail[0].strftime('%Y')) 

for year in years_list: 
    choice =(year, year) 
    choices.append(choice) 

years = forms.ChoiceField(choices, label='') 

這是一個很好的方式去這樣做,或者這是低效/錯了嗎?

相關問題