2017-08-02 8 views
0

私はいくつかのボタンを持つ1つのメインページを持つアプリを持っています。各ボタンはいくつかのビュー機能を実行し、メインページを返します。下のボタンをクリックするとメインページが表示されますが、URLにはhttp://localhost:8080/abc_app/backup_systemと表示されます。これは、私がブラウザのリフレッシュボタンを押すと、いくつかのPOST再送プロンプト/問題を作成します。Djangoすべての送信ボタンをメインページに戻す

http://localhost:8080/abc_app/backup_systemの代わりにhttp://localhost:8080/abc_appを返信してもらえますか?

ありがとうございます。

<form action="{% url 'abc_app:backup_system' %}" method="post">{% csrf_token %} 
 
    <button type="submit" name="index" class="btn btn-primary btn-block float-right"value="index">Refresh</button> 
 
</form>

def backup_system(request): 
    status = g_abc_api.backup_system() 
    return index(request) 
    # I have tried HttpResponseRedirect('/compost') as well. 
    # If possible, it would be great to have the 'status' variable returned from the API available in index(request) so I can display errors. 

def index(request): 
    ''' 
    Populate context 
    '' 
    return render(request, 'abc_app/index.html', context) 
+0

を使用することができます – Jayground

+1

の場合あなたは 'POST'を使っていて、' HttpResposeRedirect'を別のビューに返すことをお勧めします。 'POST'メソッドは常にリダイレクトされ、テンプレートはレンダリングされません。 – Bijoy

+0

ありがとうございます。どのように私はエラーメッセージを表示することができるように私はHttpResponseRedirectに 'ステータス'変数を渡すことができるかもしれないかについての任意の考えですか?私はkwargs経由で値を渡そうとしましたが、それを作るようには見えません(例:リダイレクト( 'index'、kwargs = {'status':status})) – skimobear

答えて

0

あなたは、あなたのビューコードより共有できます(あなたのテンプレートとどのようにフォームを提出した後にリダイレクトをレンダリングする方法を?)HttpResponseRedirect

from django.http import HttpResponseRedirect 
... 
return HttpResponseRedirect('your_template_name') 
関連する問題