django使用一个提交按钮提交两种不同的表单
是否可以使用Django中的一个提交按钮提交两种不同的形式?我有一个称为“仪器”的形式和四个相等的形式“配置”。现在,我想始终提交一个配置和工具。例如instrument + config 1和instrument + config 2,并且每个配置都有自己的提交按钮。
我已经在配置表单中用一个按钮尝试过:
<input onclick="submitForms()" class="btn btn-primary cfg" type="submit" value="Start" >
并调用js函数“ onclick”:
submitForms = function(){ console.log('ok'); //only for testing
document.forms["firstForm"].submit();
document.forms["secondForm"].submit();
}
这是我在views.py中的方法:
if request.method == 'POST': form1 = dataproviderInstrumentForm(request.POST)
form2 = dynamicTimeseriesForm(request.POST)
print(request.POST)
if form1.is_valid() or form2.is_valid():
# do some stuff
else:
form1 = dataproviderInstrumentForm() # an unbound form
form2 = dynamicTimeseriesForm() # an unbound form
回答:
不要<form ..>
在html中使用多个标签,而只能使用一个<form>
标签并在其下添加所有形式的字段。
范例
<form > {{ form1.as_p }}
{{ form2.as_p }}
{{ form3.as_p }}
</form>
因此,当用户提交表单时,你将在视图中获得所有表单数据,然后你就可以在视图中进行操作。如
if request.method == 'POST': form1 = Form1(request.POST)
form2 = Form2(request.POST)
print(request.POST)
if form1.is_valid() or form2.is_valid():
form prefix
在这种情况下最好使用。
所以你可以做
if request.method == 'POST': form1 = Form1( request.POST,prefix="form1")
form2 = Form2( request.POST,prefix="form2")
print(request.POST)
if form1.is_valid() or form2.is_valid():
else:
form1 = Form1(prefix="form1")
form2 = Form2(prefix="form2")
以上是 django使用一个提交按钮提交两种不同的表单 的全部内容, 来源链接: utcz.com/qa/424165.html