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[]'
}
问题是如何在 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[]'
}