2011-05-10 43 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