2017-03-02 19 views
0

フォームを送信した後、ボタンを新しいURLにリダイレクトしようとしています。これは今のところ、正しく動作し、すべてのデータがdjangoデータベースに送られます。html - フォームの投稿後に新しいURLにリダイレクトする(djangoサイト)

<form method='POST' action='' class="col-md-6 col-md-offset-7" style="background-color: lightgreen; border-radius: 10px"> 

はしかし、私は、 action="{% url 'ridesharing:request-success' %}"に をアクションを変更する場合、リダイレクトは動作しますが、データは私のDjangoのデータベースに移動しません。

ここでは何が起こっていますか?

+2

私はあなたに役立ついくつかの関連するビュー機能を投稿する必要があると思います... – Shadow

+0

新しいURLのデータベースにデータを保存するスクリプトを置く必要があります – Taki

+0

関連するビュー機能を投稿すると、質問。 –

答えて

0

あなたはここでいくつかの混乱があるようです。フォームの動作は、ブラウザがデータを送信する場所です。明らかに、データを実際に処理するビューでその点を指摘しないと、保存されません。

投稿後にリダイレクトするには、ビューからリダイレクトが返されます。あなたは空のaction属性でフォームを宣言するとき

0

<form method='POST' action=''> 

POSTデータは同じURLに送信されます。これは、フォームに何らかのエラーがある場合、ユーザーが入力した値ですべてのフィールドが埋められた状態で簡単に再表示できるため便利です。次に、フォームが有効になると、確認ページにリダイレクトされます。

あなたがそのようにフォームを宣言する場合:

<form method='POST' action='{% url 'ridesharing:request-success' %}'> 

形でユーザーが入力したデータが表示request-successに送信されます。しかし、このビューはおそらく確認ページのテンプレートをレンダリングするだけです。フォームからデータを正しく処理したい場合は、<form>という属性をactionという属性に設定するか、同じビューにするか、または空のままにする必要があります。

関連する問題