django:在MultipleChoiceField中显示所选的选项

时间:2014-08-27 18:45:33

标签: django

我必须解决别人写的代码票。

表格:

class MultiForm(forms.Form):
  agencies = forms.MultipleChoiceField(
     choices = AGENCY_TYPE,
     widget = CheckboxSelectMultipleNoLi,
     required=False)

一切正常。

我可以轻松地显示表单:

form = MultiForm()

但是,我无法在表单上看到已选中的元素。 数据在专用表中:

 Agency.objects.filter(application=application)

这只是指一张表:

 note | application_id |   type    |  id  
------+----------------+-----------+------

其中所有选中的元素都有一个条目,其值为type。 (换句话说,应用程序的所有Agency元素都有一行)。

因此,当创建数据时,它处于注册表单中,因此它不会再次显示,只是用户注册的一次。

如何显示选中的元素(我在应用的其他部分显示表单)?

1 个答案:

答案 0 :(得分:0)

这篇文章让我找到了解决方案:

Set initial value of checkbox dynamically

 data = Agency.objects.filter(application=application)
      selected = []
      for a in data:
        selected.append(a.type)
      form = MultiForm(initial={'agencies':selected})