Django 从一种形式插入乘法输入值

Django insert multiply input values from one form

问题是如何在 Django 表单提交中从一个表单插入多个值。该表单只有一个输入,其中需要不同的数字。我知道模型集表单和内联表单集,但这是不同的问题。表单设置为 HTML 页,只有一个表单域。我用一些 jQuery 创建了大约 10 个具有相同表单名称的其他输入值。更好的解释我会用代码提供。

models.py

class TestModel(models.Model):
    id = models.AutoField(primary_key=True)
    code = models.CharField(max_length=255)
    organization = models.ForeignKey('Organization')
    prod_serv    = models.ForeignKey('Product_service')
    out_invoice  = models.ForeignKey('OutgoingInvoice')

django 模型中的简单模型。

forms.py

class ModelForTest(forms.ModelForm):
    class Meta:
        model = TestModel
        exclude = ('organization','out_invoice', 'prod_serv', )

views.py

if request.method == 'POST':
    form5 = ModelForTest(request.POST, prefix='form5')
    if form5.is_valid():
        u = form5.save(commit=False)
        for code in form5.cleaned_data['code']:
            u.organization_id = org_id.id  
            u.out_invoice_id= b.id
            test = Product_service.objects.get(product_code=code)
            u.prod_serv_id = test.id
            u.save()
    else:
        form5 = ModelForTest(prefix='form5')

return render_to_response(template, dict(form5=form5), context_instance=RequestContext(request))

这是 for 循环中的问题,我必须从 code 命名的字段中提取所有值。我只是从 HTML 获得第一个输入值,其他值不会在 for loop 内循环。如何做到这一点,我的意思是如何从 HTML 中提取所有值并在表单提交后插入到模型中。

尝试将模板中的所有条目 name=code 更改为 name=code[]

要使用 Django Forms 完成此操作——请在此处查看@Daniel Roseman 的回答

FIELD_NAME_MAPPING = {
    'code': 'code[]'
}