Python Django登录(请求,用户)don';不能将用户置于会话中?
我似乎不知道如何在Django中登录用户。我很困惑,因为文档清楚地告诉了你怎么做,但不知何故,我肯定犯了一个错误 链接 说 要从视图登录用户,请使用login()。它接受HttpRequest对象和用户对象。login()使用Django的会话框架在会话中保存用户ID 因此,我有以下views.py:Python Django登录(请求,用户)don';不能将用户置于会话中?,python,django,login,Python,Django,Login,我似乎不知道如何在Django中登录用户。我很困惑,因为文档清楚地告诉了你怎么做,但不知何故,我肯定犯了一个错误 链接 说 要从视图登录用户,请使用login()。它接受HttpRequest对象和用户对象。login()使用Django的会话框架在会话中保存用户ID 因此,我有以下views.py: def login_view(request): if request.method == 'GET': return render(request, 'app/login
def login_view(request):
if request.method == 'GET':
return render(request, 'app/login.htm')
if request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is None:
return HttpResponseRedirect(reverse('error'))
if not user.is_active:
return HttpResponseRedirect(reverse('error'))
# Correct password, and the user is marked "active"
auth.login(request, user)
# Redirect to a success page.
return HttpResponseRedirect(reverse('home'))
def home(request):
contextdict = {}
if request.session.user.is_authenticated():
contextdict['username'] = request.session.user.username
context = RequestContext(request, contextdict )
return render(request, 'app/home.htm', context)
现在,通过使用print'qqq',我知道'is None'和'not is_active'已被计算为True,因此auth.login被计算并返回HttpResponseRedirect。我希望一切正常,用户登录,用户名在主视图中作为上下文传递。但是,Django给了我以下错误:
AttributeError at /app/home/
'SessionStore' object has no attribute 'user'
是的,我不知道我在做什么。你应该使用
request.user
来获取用户对象,而不是request.session.user
会话中的数据用于检索用户对象,但会话不包含实际用户您应该使用
request.user
获取用户对象,而不是request.session.user
会话中的数据用于检索用户对象,但会话不包含实际用户是否已在模型中导入用户类?您应该访问
request.user
,而不是request.session.user
。会话中的数据用于检索用户对象,但会话不包含实际用户。您是否已在模型中导入用户类?您应该访问request.user
,而不是request.session.user
。会话中的数据用于检索用户对象,但会话不包含实际用户。