0

重定向后如何从模板中的会话中检索数据。实际上可能吗?

这是我的代码:

查看.py:

if request.POST:
user = request.POST.get('username')
passw = request.POST.get('password')
#password1 = ''
try:
    userdata = Employee.objects.get(username = user, password = passw)
    user_id = request.session["user_id"] = userdata.id
    employee_details = Employee.objects.get(id=user_id)
    request.session['emp_details'] = employee_details
    return HttpResponseRedirect('/home/')
except Employee.DoesNotExist:
    state = "Username or password incorrect !"
    return render_to_response('login.html',
        {'username' : username1,'state' : state},
        context_instance = RequestContext(request))

模板:home.html

<body>
<p>
<ul>
    <li><a href="">{{request.session.emp_details.emp_name}}</a></li>
</ul>
</p>
<p><a href="/logout/"><button>logout</button></a></p>
</body>

谢谢

4

1 回答 1

5

确保已将 django.core.context_processors.request 添加到模板上下文处理器中。然后,您可以像在代码中一样访问会话变量。

您可能需要将以下行添加到您的视图中

request.session.modified = True

这取决于SESSION_SAVE_EVERY_REQUEST = True您的设置中是否有。查看保存会话的文档。

最后,确保将RequestContext对象传递给render_to_response视图中的函数'/home/'RequestContext包括模板上下文中的对象request(使其在模板中可访问{{ request }})。

警告

虽然这应该可以帮助您使会话正常工作-我必须同意 Daniel 的观点,但您不应该像这样进行用户身份验证。使用django 自己的身份验证

于 2013-01-22T09:12:21.883 回答