【发布时间】:2011-03-07 17:35:22
【问题描述】:
我需要使用ManyToMany 字段将初始数据设置为formset。
通常,当我的 fomset 形式中存在 no ManyToMany 字段时,我会这样做:
PersonFormSet = forms.formsets.formset_factory(NickName, can_delete=True)
init_data = [{'name':'Vasya pupkin','nick':'Vasya'},
{'name':'Vasyapupkin','nick':'Petya'}]
nick_formset = PersonFormSet(initial=init_data)
但现在我需要设置 ManyToMany 字段初始数据并尝试这样的操作:
NickNameFormSet = forms.formsets.formset_factory(NickName, can_delete=True)
init_data = [{'name': 'Vasya Pupkin',
'nick': {'Vasya':'selected',
'Petya':'notselected'}}]
nick_formset = NickNameFormSet(initial=init_data)
但它不起作用。
如何将初始数据传递给 Formset,以便它像这样呈现我的小部件:
<select multiple="multiple" name="person_set-0-nickname" id="id_person_set-0-nickname">
<option value="1" selected="selected">Vasya</option>
<option value="2">Petya</option>
</select>
注意:我只使用 Django 的 Forms 和 Formsets。没有 Django 模型。我实际上可以定义它,但它是空的,我使用的是NoSQL。
【问题讨论】:
-
其实我找到了解决方案。但那是一年多以前的事了。不记得了。我可以帮你找。
标签: python django django-forms many-to-many