2011-04-07 73 views
2

我正在填充表單choicefield的選擇在Django,這是一個每年選擇字段,我從數據庫中獲取年,並把它們在外地元組的列表。我的代碼看起來像這樣緩存問題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)裝飾,但不工作。我能做什麼??

在此先感謝!

回答

9

更新幾年,當你初始化一個表單實例。

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

喔許多感謝的人!這個對我有用!!再見 – eos87 2011-04-07 20:08:38