我正在 Django 中填充表单选择字段的选项,它是一个年份选择字段。我从数据库中获取年份并将它们放入字段中的元组列表中。我的代码看起来像这样
def get_years():
choices = []
years = []
for poll in Poll.objects.all().order_by('created'):
years.append(poll.created.year)
for year in list(set(years)):
choices.append((year, year))
return choices
我的表单域是这样的
year = forms.ChoiceField(choices=get_years())
问题是,当我在浏览器中看到它时,根据数据库,年份列表是好的,但是当我更改数据库中的某个日期时,年份选择列表不会更新。我试过 width @cache_control(no_cache=True)
装饰器,但没有用。有什么想法吗?
提前致谢!
最佳答案
初始化表单实例时更新年份。
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['year'].choices = self.get_years()
关于javascript - Django 表单和缓存控制的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5586803/