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

我花了几个小时来了解这个......

相关问题