2011-05-10 41 views
0

我有一個selectmultiple選擇小部件,從mysql數據庫獲取數據並顯示給用戶。Django MultipleChoice條目不刷新

list = [(x.pk, x.parameter) for x in Parameter.objects.all()] 
parameters = forms.CharField(label=("Available parameters"),widget=forms.SelectMultiple(choices=list) 

例如,目前它將在其選項中顯示爲[A,B,C]。

如果我直接從數據庫中刪除'B',我應該只能看到selectmultiple小部件中的[A,C](最初我以爲會重新加載並從數據庫中獲取數據),但是似乎不是這樣,它仍然會顯示[A,B,C]。我希望selectmultiplet小部件能夠在運行時真正顯示當前數據庫,或者至少刷新(F5)頁面(似乎不會刷新小部件)。如果我重新啓動Web服務器,它只會獲得新的數據集。

我認爲這可能是一些緩存,我需要清除?感謝任何建議。 感謝

回答

1

你需要把你的代碼形式的初始化方法,或者通過選擇對的形式創作形式:

def SomeForm(forms.Form): 
    def __init__(self, *args, **kwargs): 
     choices = [(x.pk, x.parameter) for x in Parameter.objects.all()] 
     self.fields['parameters'] = forms.CharField(label="Available parameters", widget=forms.SelectMultiple(choices=choices) 
+0

只是想知道,你想用一個selectMultiple爲什麼CharField上的小部件? – DTing 2011-05-10 03:10:48