以下是来自views.py的代码,其中我使用render_to_response
将用户引导至done.html
以及变量字典。但是,我实际上想要将用户引导到URL /home_main/#signin_complete
并传递可调用的变量字典。有人可以建议是否有办法这样做?
def done(request):
"""Login complete view, displays user data"""
scope = ' '.join(GooglePlusAuth.DEFAULT_SCOPE)
return render_to_response('done.html', {
'user': request.user,
'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
'plus_scope': scope
}, RequestContext(request))
修改
我的要求是从多页html(home_main.html)渲染第二页(signin_complete)。目前,我通过使用HttpResponseRedirect
重定向用户来实现此目的,如下所示。但是,我还想传递一个可调用的字典,我可以在多页html的第二页中使用它。
这是一个link,它提供了多页面模板结构下多页html的更多信息。
def done(request):
"""Login complete view, displays user data"""
scope = ' '.join(GooglePlusAuth.DEFAULT_SCOPE)
return HttpResponseRedirect('/home_main/#signin_complete')
下面是我想在多页面html中传递给第二页(sign_complete)的字典。
{
'user': request.user,
'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
'plus_scope': scope
}
答案 0 :(得分:2)
session是在请求之间存储数据的地方。
# in done():
request.session['dict_to_save'] = my_dict_to_save
return redirect('/new/url/to/redirect/to')
# in the new view:
values_from_session = request.session.pop('dict_to_save', None)
答案 1 :(得分:0)
如果您要在done()
方法中重定向请求会更好,就像您要执行的文档advises一样。
这也解决了您的问题,因为您可以定义自己的网址以重定向到there's related SO question,了解重定向时如何添加哈希标记。