'SessionStore' 对象没有属性 'email'
'SessionStore' object has no attribute 'email'
我很难在 Django 中访问我的会话变量。
我有两个不同的应用程序 custom_user 和文章。
在我 custom_user 的 views.py 文件中,我声明了一个会话变量。
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
request.session['email'] = user.email
return render_to_response(request, "loggedin.html", locals(),context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/accounts/invalid')
在我的 views.py 文章应用程序中,我是这样访问它的。
def articles(request):
return render_to_response('articles.html',
{'articles':Article.objects.all().order_by('-id'),'last':Article.objects.earliest('-pub_date'), 'loggedin':request.session.email})
我的 articles.html 文件继承了 base.html 文件,我正在使用 {{loggedin}} 访问变量。
我已经使用了 {{request.session.email}} 但这也不起作用
我最终想要做的是在 base.html 文件中的导航栏中显示整个站点登录用户的电子邮件地址。
我只在 loggedin.html 文件中获取 user.email 值,该文件在 auth_view 函数中呈现。但不在任何其他 html 文件中。
您应该以以下方式访问它:
'loggedin': request.session['email']
...与您定义它的方式相同。
另外,为了防止在没有设置的情况下出错,可以使用:
'loggedin': request.session.get('email')
阅读有关在视图中使用会话变量的更多信息in the docs。
我很难在 Django 中访问我的会话变量。
我有两个不同的应用程序 custom_user 和文章。 在我 custom_user 的 views.py 文件中,我声明了一个会话变量。
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
request.session['email'] = user.email
return render_to_response(request, "loggedin.html", locals(),context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/accounts/invalid')
在我的 views.py 文章应用程序中,我是这样访问它的。
def articles(request):
return render_to_response('articles.html',
{'articles':Article.objects.all().order_by('-id'),'last':Article.objects.earliest('-pub_date'), 'loggedin':request.session.email})
我的 articles.html 文件继承了 base.html 文件,我正在使用 {{loggedin}} 访问变量。 我已经使用了 {{request.session.email}} 但这也不起作用
我最终想要做的是在 base.html 文件中的导航栏中显示整个站点登录用户的电子邮件地址。
我只在 loggedin.html 文件中获取 user.email 值,该文件在 auth_view 函数中呈现。但不在任何其他 html 文件中。
您应该以以下方式访问它:
'loggedin': request.session['email']
...与您定义它的方式相同。
另外,为了防止在没有设置的情况下出错,可以使用:
'loggedin': request.session.get('email')
阅读有关在视图中使用会话变量的更多信息in the docs。