是否可以使用两个按钮将GET表单提交到两个不同的视图?

时间:2017-04-10 14:57:52

标签: html django forms get

我有一个在一个视图上运行良好的get表单。

http://myurl.com/myapp/filter_objects/?risk__worktask=1&craft=3

我有另一个视图可以将此筛选列表导出为pdf。现在我将结果存储在会话中并从我的pdf视图中访问列表,但理想情况下我想将过滤器参数从GET表单直接传递到export_to_pdf视图。

django可以吗? [给一个给定的GET表单发送到两个不同的网址,有两个提交按钮?太棒了!

谢谢!

这是我的表格

<form method="get">

<div class="well">
  <h4 style="margin-top: 0">Filter Objects</h4>
    <div class="row">

        <div class="form-group col-sm-4 col-md-3">
            {{ filter.form.risk__worktask.label_tag }}
            {% render_field filter.form.risk__worktask class="form-control" %}
        </div>

        <div class="form-group col-sm-4 col-md-3">
            {{ filter.form.craft.label_tag }}
            {% render_field filter.form.craft class="form-control" %}
        </div>

    </div>

    <button type="submit" class="btn btn-primary">
        <span class="glyphicon glyphicon-search"></span> Search
    </button>

</div>

<div class="well">
  <h4 style="margin-top: 0">Filtered Ratings: {{ filter.qs.count }}</h4>
  <a href="{% url 'myapp:export_ratings_to_pdf_by_worktask' %}">
      <button type="button" class="btn btn-success">Export Filtered List ({{ filter.qs.count }} items)</button>
  </a>

</div>

1 个答案:

答案 0 :(得分:1)

为什么不使用按钮中的 formaction = 标记属性来覆盖表单操作?

<form method="get" action="firstView">
  <input ...
  <input ...
  <button ...>Submit to first view</button>
  ..
  ..
  <button formaction="{% url 'myapp:secondView' %}" ...>Submit to second view</button>
</form>

这是一个HTML5属性,但所有主流浏览器都支持它。

FormAction browser support