javascript - Django 表单和缓存控制的问题

标签 javascript python django cache-control browser-cache

我正在 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/

相关文章:

python - Django - 使用 Gunicorn、Nginx 和 Supervisor 进行部署,Gunicorn 错误日志

javascript - 是否有可能获得对 "setter"的 setter 函数的引用?

javascript - 使用 Jquery 将跨度添加到数字

javascript - Grunt (node) - 如何显示可用任务?

Python 类成员与实例成员不同

python - heroku django south 似乎没有使用迁移

javascript - 使用谷歌应用程序脚本滚动电子表格到今天的日期

python - 我可以在 python 中将元组放入数组中吗?

python - 在 ModelForm 中仅将日期时间字段显示为小时和分钟(不显示日期)

python - 无法从 MySQL 获取数据并在 Django 中呈现它