我在django中填充表单choicefield的选择,这是一个年份选择字段,我从数据库中获取年份并将它们放在该字段的元组列表中。我的代码看起来像这样

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)装饰器,但不起作用。我能做什么??

提前致谢!

最佳答案

初始化表单实例时更新年份。

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/

10-11 01:08