2017-04-10 9 views
0

私は1つのビューでうまく動作するフォームを取得しています。2つのボタンで2つの異なるビューにGETフォームを送信することはできますか?

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

このフィルタリングされたリストをpdfにエクスポートする別のビューがあります。今のところ私は結果をセッションに保存していて、そこからpdfビューにリストをアクセスしていますが、理想的には、GETフォームのフィルタパラメータをexport_to_pdfビューに直接渡したいと思います。

これはdjangoで可能ですか? [与えられたGETフォームを2つの送信ボタンで2つの異なるURLに送信するには?素晴らしいことだ !

ありがとうございます!

ここに私のフォームは、uは、フォームのアクションを上書きするために、あなたのボタンでformaction =タグ属性を使用していないのはなぜ

<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

ですか?

<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

これは機能します。しかし、完璧ではない私はハードコアしていたので、2番目のボタンでformactionのターゲットURLを、いいdjangoのURLヘルパーを使用せずに。どのような考え方が正しいのでしょうか? – Malcoolm

+1

ハードコーディングとはどういう意味ですか? 'formaction'値のテンプレート' {%url ...%} 'タグを簡単に使って動的にすることができます。 'href'と同じように。 例: '

+0

本当にうまく動作します!私は答えを受け取り、それを編集してURLタグ付き最終版を追加します。ありがとう! – Malcoolm

関連する問題