2013-02-21 9 views
8

私は特定のタスクを実行し、hello.htmlテンプレートをレンダリングする別のビューに戻るビューを持っています。DjangoでHttpResponseRedirectからメッセージを渡すには?

def 1stview(request): 
    #Do this 
    #Do that 
    return HttpResponseRedirect('/success/') 

def success(request): 
    return render_to_response('overview.html', {'overview_files': b, 'total_files':total_files, 'total_size':total_size, 'username': username}, context_instance=RequestContext(request)) 

最初のビューを正常に完了した後、私はoverview.htmlに「成功」​​メッセージを渡したいと思います。 successに多くのリダイレクトがあります。私は最初のビューを通過するときにのみメッセージを転送したい。どうやってやるの?

+1

...これを理解するために私に数時間をコスト成功/?ステータス=成功 ') '。成功関数では、そのパラメータを得ることができます: 'request.GET.get( 'status'、None)' – stalk

答えて

10

messages frameworkを使用して、ページリクエスト間でメッセージを送信します。

1
from django.contrib import messages 
messages.success(request, _('Thank you')) 
return redirect('/whatever/') 
0

国際化 URLを使用する場合は注意してください! /whatever/のようなリンクを使用していて、国際化を使用している場合は、/en/whatever/にリダイレクトされ、要求のメッセージが失われます。あなたが国際化を使用する場合は、必ずURLに言語を渡す:

from django.contrib import messages 
from django.utils.translation import get_language 

messages.success(request, _('Thank you')) 
return redirect('/%s/whatever/' % get_language()) 

はとても ` '/(HttpResponseRedirectを返すようにあなたは、リダイレクトするためにGETパラメータを追加することができます

関連する問題