在Django中将表单的多个实例插入到DB中

时间:2016-08-10 12:08:42

标签: django

我有以下代码:

def test_view(request, list):

    my_form = MyForm(request.POST)
    for x in list:
        my_instance = my_form.save(commit = false)
        my_instance.variable_field = x['content']
        my_form.save()

现在由于某种原因,新记录仅在第一次迭代期间插入到DB中。我的猜测是它与form prefixes有关,但我仍然没有在文档中找到任何材料来描述如何恰当地解决这种情况。

更新 只是为了澄清:我有一个表单,底层实例包含一个我已从表单中排除的字段,并将其转换为我的界面中的选择元素。用户可以在选择中选择多个选项,这就是我在代码提取中需要for循环的原因。

1 个答案:

答案 0 :(得分:1)

这样做:

def test_view(request, list):

   my_form = MyForm(request.POST) 

   for x in list:
        my_instance = my_form.save(commit = false)
        if my_instance.id:
                my_instance.id = None
        my_instance.variable_field = x['content']
        my_form.save()