2013-02-21 70 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)) 

成功完成1st視圖後,我想在overview.html中傳遞'Successful'消息。有很多重定向到success視圖。我只想在通過第一個視圖時才傳輸消息。我怎樣才能做到這一點?

+1

您可以添加GET參數重定向,像這樣'返回HttpResponseRedirect('/成功/?狀態=成功「)'。在成功函數中,你可以得到這個參數:'request.GET.get('status',None)' – stalk 2013-02-21 09:57:08

回答

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

使用國際化網址時請小心!如果您使用類似/whatever/的鏈接但使用國際化,它將重定向到/en/whatever/,從而丟失請求中的消息。如果您使用的國際化,始終是語言傳遞給網址:

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

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

我花了幾個小時來了解這個......

相關問題