2011-10-27 11 views
0

私には2つの送信方法が必要なフォームがあります。ユーザーが「追加」ボタンを押すと、データベースに保存されます。ユーザーが「表示」ボタンを押すとセッションのフォームが保存されるので、それは単なるビューです。両方のプロセスが同期しているため、送信ボタンが押されるたびにページがリロードされます。フォームを保存または表示する(Djangoテンプレートシステムを使用)

2つの異なるアドレスでフォームを送信する方法、またはrequest.POST変数を追加してバックエンドのロジックを指定する方法はありますか?それはhtml、djangoテンプレートシステムまたはjavascriptで可能ですか?

<table>  
    <form class="add-cv" method="POST" action="{% url add_cv %}"> 
    {% csrf_token %} 
    <!--A lot of form fields--> 
    <tr> 
     <td>    
      <input type="submit" value="{% trans "Add" %}"> 
      <input type="submit" value="{% trans "View" %}"> 
     </td>   
    </tr> 
    </form> 
</table> 

答えて

1

提出name="submit1"name="submit2"にname属性を追加し、次に、あなたはあなたのADD_ CVビューでそれらの間の違いを次のことができます。

if "submit1" in request.POST: 
    do something 
elif "submit2" in request.POST: 
    do something 
+0

Woah!それは本当にきれいです!ありがとう! – I159

+0

あなたを歓迎します;) – juankysmith

1

これは、両方のjavascriptや、あなたのDjangoのビューを使用して可能です関数。

<table>  
<form class="add-cv" method="POST" action="{% url add_cv %}"> 
{% csrf_token %} 
<!--A lot of form fields--> 
<tr> 
    <td>    
     <input type="submit" name="submit_Add" value="{% trans "Add" %}"> 
     <input type="submit" name="submit_View" value="{% trans "View" %}"> 
    </td>   
</tr> 
</form> 
</table> 

これは、あなたが「submit_Add」またはで「submit_Value」のいずれかを見つけることができるようになります。このようなあなたのHTMLフォームを変更し、適切な処置を行う、あなたのビュー関数広告にリクエストを送信するために

リクエストのキー.POST辞書は、送信ボタンがクリックされたかどうかに応じて、ビューに送信します。

def YourView(request): 
    if "submit_Add" in request.POST: 
     # Actions to add the values in the database. 
    elif "submit_View" in request.POST: 
     # Actions to save the values in the session. 

それとも、ボタンを区別するためにJavaScriptを使用することができます(しかし、これは方法についてのラウンドとなり、あなたは絶対にあなたのページをリロードすることができない場合にのみ使用してください。):あなたはこのようなあなたの意見でこれを区別することができます。

<table>  
<form class="add-cv" method="POST" action="{% url add_cv %}"> 
{% csrf_token %} 
<!--A lot of form fields--> 
<tr> 
    <td>    
     <input type="button" onclick="func_Add();" value="{% trans "Add" %}"> 
     <input type="button" onclick="func_View();" value="{% trans "View" %}"> 
    </td>   
</tr> 
</form> 
</table> 

テンプレートに二つの機能を定義します。このようなHTMLコードが変更JavaScriptを使用し 。

<script type="text/javascript"> 
    function func_Add(){ 
    //Required 'Add' actions. 
    } 

    function func_View(){ 
    //Required 'View' actions. 
    } 
</script>