2017-04-10 43 views
0

我有一个表单在一个视图上运行良好。是否可以使用两个按钮将GET表单提交给两个不同的视图?

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

我有另一种观点认为这种过滤列表导出为PDF。现在,我将结果存储在会话中,然后在我的pdf视图中从那里访问列表,但理想情况下,我希望将筛选参数从GET表单直接传递到export_to_pdf视图。

在django中可能吗? [使用两个提交按钮将给定的GET表单发送到两个不同的URL?会很好 !

谢谢!

这里是我的形式

<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

为什么不u使用的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

+0

This Works!然而,不完美的是,我必须在第二个按钮中硬编码formaction的目标url,而不使用漂亮的django url助手。任何想法是什么将是正确的语法? – Malcoolm

+1

硬编码是什么意思?你可以在'formaction'值中使用模板'{%url ...%}'标签来使其变为动态。和你用'href'做的一样。 示例:'

+0

非常感谢!我会接受答案并编辑它以添加带有url标记的最终版本。谢谢 ! – Malcoolm

相关问题