Python 单击“下一步”而不是“提交”时Django表单验证

Python 单击“下一步”而不是“提交”时Django表单验证,python,html,django,Python,Html,Django,我有一个HTML页面,其中有两个表单。Django没有检查第一个表单的表单验证。我想让它检查第一个表单的表单验证。 这是Html代码 <form method="post" id="msform"> {% csrf_token %} <!-- progressbar --> <ul id="progressbar"> <li class="active" id="conf"><strong>Configu

我有一个HTML页面,其中有两个表单。Django没有检查第一个表单的表单验证。我想让它检查第一个表单的表单验证。 这是Html代码

<form method="post" id="msform">
  {% csrf_token %}
    <!-- progressbar -->
    <ul id="progressbar">
      <li class="active" id="conf"><strong>Configuration</strong></li>
        <li id="auth"><strong>Authentication</strong></li>
    </ul>
    <div class="progress">
        <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
    </div> <br> <!-- fieldsets -->
    <fieldset>
        <div class="form-card">
            <div class="row">
                <div class="col-7">
                    <h2 class="fs-title">Cluster Configuration</h2>
                </div>
                <div class="col-5">
                    <h2 class="steps">Step 1 - 2</h2>
                </div>
            </div>
            {{ form1|crispy }}
        </div> <input type="button" name="next" class="next action-button" value="Next" />
    </fieldset>
    <fieldset>
        <div class="form-card">
            <div class="row">
                <div class="col-7">
                    <h2 class="fs-title">Authentication</h2>
                </div>
                <div class="col-5">
                    <h2 class="steps">Step 2 - 2</h2>
                </div>
            </div>
            {{ form2|crispy }}
        </div><button type="submit" class="btn btn-primary" >Next</button>
    </fieldset>
</form>

如果我对第一个表单使用“提交”按钮而不是“下一步”,则第二个表单既不会打开,也不会提交表单,即不会发生任何事情。

因此我认为问题可能是因为您有一个拱形表单标签,并且其中有两个表单是通过查看功能发送的:

您现在拥有的是:

<form>
<fieldset>
    <! –– Your Code ––>
        {{ form1|crispy }}
    </div> <input type="button" name="next" class="next action-button" value="Next" />
</fieldset>
<fieldset>
    <! –– Your Code ––>
     {{ form2|crispy }}
    </div><button type="submit" class="btn btn-primary" >Next</button>
</fieldset>

</form>
从上面对原始帖子的简化可以看出,在一个表单标签中有两个表单模板。所以,当您点击其中一个提交按钮时,它们都会被发送

如果我没有弄错的话,我相信你可能想要的是这样的东西:

<form name="form1" id="form1">
<fieldset>
    <! –– Your Code ––>
        {{ form1|crispy }}
    </div> <input type="button" name="form1" class="next action-button" value="Next1" />
</fieldset>
</form>
<form name="form2" id="form2">
<fieldset>
    <! –– Your Code ––>
        {{ form1|crispy }}
    </div> <input type="button" name="form2" class="next action-button" value="Next2" />
</fieldset>
</form>
请注意,我已经更改了按钮名称,并为每个表单添加了ID和名称,您可能还希望为按钮添加ID和唯一值。这将有助于您在视图函数中构建条件,以确定提交了哪个表单等等

下面是一个例子,描述了如何更深入地处理这个问题

这一切都很美好,但链接页面的结论是:

如果有帮助,请告诉我,如果您不理解/更改不起作用,请随时询问更多