我正在尝试创建一个ModelChoiceField,其选项基于查找数据库中多个帖子中存在的年份。
例如,我的数据库中存储了一个带有DateTime
字段的帖子。我试图做的是创建一个表格,其中的选项基于邮政表格中的年份范围。
我们有一个字段为date_created的帖子。值是
2013-06-27 03:21:15
我们有另一个值
2012-06-27 03:00:20
我想显示一个表格,其中包含邮政表格中每年的选择选项,没有重复项;
<option value="2013">2013</option>
<option value="2014">2014</option>
ModelChoiceField允许我使用单个查询执行此操作,还是需要处理和构建包含年份的列表。
答案 0 :(得分: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='')
这是一个很好的方法来做这个还是这个效率低下/错误?
答案 1 :(得分:0)
ModelChoiceField用于基于外键的模型选择。我认为您必须使用ChoiceField并在运行时生成选项。
告诉我你在哪里使用表格,也许可以告诉你该怎么做。