是否可以在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
型
3条答案
按热度按时间nszi6y051#
在html中不要有多个
<form ..>
标签,而只使用一个<form>
标签,并在其下添加所有表单的字段。模板示例
字符串
因此,当用户提交表单时,您将获得视图中的所有表单数据,然后您可以在视图中执行您正在执行的操作。作为
型
在这种情况下最好使用
form prefix
。所以你可以
型
f2uvfpb92#
扩展**@罗汉**答案,并增加对表单的更多控制。
非依赖表单/无关系/多个表单中保存任意表单
单独检查每个表格以检查哪些表格无效。如果包含错误,则将它们存储到上下文中或重定向它们。
字符串
依赖形式/模型形式(1- 1,1-m)/关系形式
一个父窗体和一个从属于父窗体的子窗体。如果两个表单同时保存或检查错误,我们将使用此方法。
型
but5z9lq3#
我没有得到太多的运气与上述,但我一直在使用脆的形式。所以我做的方式,最后我有不同的形式,但在脆的形式,我设置self.help.form_tag = False,这样我只携带HTML表单标签和其余eventhough是表单,我可以指定它在HTML我可以提交所有数据在一起