【问题标题】:Form submit sending POST request instead GET表单提交发送 POST 请求而不是 GET
【发布时间】:2021-10-12 13:19:06
【问题描述】:

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

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

下面是 HTML 代码的 sn-p

<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 请求提交按钮,它似乎是被触发的那个,因为当我调试应用程序时,按下 apply filter 按钮时是 request.method == "POST"

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

【问题讨论】:

  • 乍一看,您的第一个表单没有关闭 &lt;/form&gt; 标记。
  • 它确实 - 在按钮之后
  • 您在此处显示的代码中没有。
  • 啊啊,在 POST 方法中。你是完全正确的 - 我怎么错过了!谢谢

标签: html django get get-request


【解决方案1】:

很简单不是吗?最上面的表单有 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 方法的形式。这就是为什么你会得到发布结果。希望能帮助到你。如果是,请投票给答案。

【讨论】:

  • 有帮助吗?是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多