我正在填充django中表单选择字段的选项,它是一年选择字段,我从数据库中获取数年并将它们放在字段中的元组列表中。我的代码看起来像这样
def get_years():
choices = []
years = []
for en in Encuesta.objects.all().order_by('fecha'):
years.append(en.fecha.year)
for year in list(set(years)):
choices.append((year, year))
return choices
我的表单字段看起来像这样
year = forms.ChoiceField(choices=get_years())
问题在于,当我在浏览器中看到它时,年份列表根据数据库很好,但是当我在数据库中更改某个日期时,年份选择列表不会更新。我尝试过宽度@cache_control(no_cache=True)
装饰器,但不起作用。我能做什么??
提前致谢!
答案 0 :(得分:9)
更新初始化表单实例的年份。
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['year'].choices = self.get_years()