2017-09-14 16 views
0

私は2つのことを行うビューを作成しようとしています:まず、request.methodがGetの場合、空のフォームが表示されます。 メソッドがPOSTの場合は、フォームをデータベースに送信する必要があります。django - Getの後のPOSTはビューでは機能しません

問題は、フォームが送信されPOSTスタッフが実行すると、同じビューが実行されず、代わりにプロジェクトのルートURLが実行されるということです。ここ はログです:

(追加は、私は、このビューのために設定したURLである)

[14/Sep/2017 18:27:07] "GET /add HTTP/1.1" 200 1815 
[14/Sep/2017 18:27:12] "POST/HTTP/1.1" 200 1683 

(追加は、私は、このビューのために設定したURLである)

とコード次のようになります。

def add_link(request): 
    if request.method == 'POST': 
     form = Form(request.POST) 
     ... 

    else: 
     form = Form() 
    return render(request, 'mytemp.html', {'form': form }) 

、ここでは、フォームテンプレートでどのように見えるかです:

<form action="." method="post"> 
     {{ form.as_p }} 
     {% csrf_token %} 
     <p><input type="submit" value="Add Link"></p> 
    </form> 
+0

送信されているフォームが含まれているテンプレートの外観はどうですか? – schillingt

+0

私はそれを上記の質問に加えました。 –

+0

あなたのURLを表示してください。 –

答えて

0

アクションが正しく設定されていません。どちらか

<form action="." method="post"> 

を完全にそれを残す:

<form method="post"> 

それとも、それはあなたの現在のビューを指すようにする{% url ... %}を使用しています。

<form action="{% url 'yourviewsname' %}" method="post"> 

さらに詳しい回答はurls.pyに投稿してください。

関連する問題