Django ModelForm,一次创建多个

时间:2012-09-11 07:57:23

标签: django select modelform

这听起来有点奇怪。

我有一个名为Items的对象列表。对于其中的每一个,我希望能够创建另一个名为Main的对象。 Main有一个项目的外键。

创建Main的ModelForm让我可以选择为foreignkey字段选择一个Item。

我想要的是能够在modelform的foreignkey字段中选择多个值,然后在处理表单数据时,为每个选择创建一个Main对象。

我试过简单地将字段覆盖到ModelMultipleChoiceField,但在提交数据时我似乎无法找到处理它的方法。我找不到一个方法来检索所有选定的值,所以我可以启动循环,即:我想在循环之前将选定的值提取到列表中。类似的东西:

form = Form(request.POST)
list = form.fields['foreignkey'].values()

for l in list:
    form.fields['foreignkey'] = l
    if form.is_valid():
        form.save()
        ...
    ...

Excepts,values()方法不存在,所以......

希望这有意义......任何想法?

1 个答案:

答案 0 :(得分:0)

  1. 添加新的ModelMultipleChoiceField ,比如multiple_items,而不是覆盖FK的默认字段,

  2. 覆盖form.save() ,为每个self.cleaned_data['multiple_items']创建一个主