表单提交发送 POST 请求而不是 GET

Form submit sending POST request instead GET

我正在尝试让 django-filter 工作,而且它已经工作了,但现在它突然停止了。

问题是过滤器中的 submit 按钮似乎在发送 POST 请求而不是 GET

下面是 HTML 代码的片段

<div class="form-group">
    <form method="POST">
      {% csrf_token %}
      {{form|crispy}}
      <button class="btn btn-outline-success" type="submit">Add product</button>
</div>


<div id="filter-menu">
        <form method="get">
          {{filter.form.nick_name|as_crispy_field}}
          <br>
          {{filter.form.domain|as_crispy_field}}
          <br>
          <button class="btn btn-outline-success" type="submit">Filtrér</button>
        </form>
        
        <form method="get">
          {{filter.form.nick_name|as_crispy_field}}
          <br>
          {{filter.form.domain|as_crispy_field}}
          <br>
          <button class="btn btn-outline-success" type="submit">Dummy</button>
          </form>
</div>

我确实有一个 POST-请求提交按钮,如上所示,它似乎是被触发的按钮,因为当我调试应用程序时,request.method == "POST" 当按下 apply filter 按钮。

有趣的是“虚拟按钮”可以正常工作

是不是很简单?顶部表单有 post 方法,你忘了添加它。使用下面的代码。

<div class="form-group">
    <form method="POST">
      {% csrf_token %}
      {{form|crispy}}
      <button class="btn btn-outline-success" type="submit">Add product</button>
</form>
</div>


<div id="filter-menu">
        <form method="get">
          {{filter.form.nick_name|as_crispy_field}}
          <br>
          {{filter.form.domain|as_crispy_field}}
          <br>
          <button class="btn btn-outline-success" type="submit">Filtrér</button>
        </form>
        
        <form method="get">
          {{filter.form.nick_name|as_crispy_field}}
          <br>
          {{filter.form.domain|as_crispy_field}}
          <br>
          <button class="btn btn-outline-success" type="submit">Dummy</button>
          </form>
</div>

问题一定是它假设所有其他形式都是第一种形式的一部分,而第一种形式只是使用 post 方法的形式。这就是您获得 post 结果的原因。希望能帮助到你。如果是,请投票给答案。