我必须解决别人写的代码票。
表格:
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元素都有一行)。
因此,当创建数据时,它处于注册表单中,因此它不会再次显示,只是用户注册的一次。
如何显示选中的元素(我在应用的其他部分显示表单)?
答案 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})