Проблема с кешированием форм Django - PullRequest
2 голосов
/ 07 апреля 2011

Я заполняю выбор поля выбора формы в 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) декоратор, но не работает. Что я могу сделать??

Заранее спасибо!

1 Ответ

9 голосов
/ 08 апреля 2011

Обновите годы при инициализации экземпляра формы.

def __init__(self, *args, **kwargs):
   super(MyForm, self).__init__(*args, **kwargs)
   self.fields['year'].choices = self.get_years()
...