Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django MultipleChice条目未刷新_Django_Django Views - Fatal编程技术网

Django MultipleChice条目未刷新

Django MultipleChice条目未刷新,django,django-views,Django,Django Views,我有一个SelectMultipleChoice小部件,它从mysql数据库获取数据并显示给用户 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] 如果我直接从数据库中

我有一个SelectMultipleChoice小部件,它从mysql数据库获取数据并显示给用户

 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]。我希望SelectMultilet小部件在运行时实际显示当前数据库,或者至少刷新(F5)页面{似乎没有刷新小部件}。只有重新启动web服务器,它才会获取新的数据集

我想可能是某个缓存需要清除?感谢您的建议。
谢谢

您需要将代码放入表单的init方法中,或者在表单创建时将选项传递给表单:

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)

只是想知道,为什么要在CharField上使用SelectMultiple小部件?