如果 user.is_authenticated 没有登录用户 django
Posted
技术标签:
【中文标题】如果 user.is_authenticated 没有登录用户 django【英文标题】:if user.is_authenticated not getting logged in user django 【发布时间】:2020-03-15 21:20:10 【问题描述】:对 python 和 django 框架完全陌生。
正在尝试构建登录/注册系统。'
注册后,重定向到主页,但用户未通过身份验证(始终返回 false)
views.py
def register(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
fullname = form.cleaned_data.get('fullname')
password = form.cleaned_data.get('password1')
user = authenticate(username=username, fullname=fullname, password=password)
messages.success(request, f'Welcome to blaza fullname')
if user is not None:
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'accounts/signup.html', 'form': form)
home.html
% extends 'base.html' %
% block title % Home % endblock %
% block content %
% if user.is_authenticated %
Welcome, user.username!
<a href="">Logout</a>
% else %
<P>You are not logged in</P>
<p><a href="">Login here</a></p>
% endif %
% endblock %
它总是返回 false。 “您没有登录”。
我已经尝试% if request.user.is_authenticated % 仍然无法正常工作。
【问题讨论】:
【参考方案1】:is_authenticated
是方法而不是属性。我想你忘记了括号。
试试这个:
% if request.user.is_authenticated() %
【讨论】:
Ttemplate 语法错误。无法解析剩余部分:来自“request.user.is_authenticated()”的“()” 我的错。我正在使用 django 1.8,其中 is_authenticated 是方法。它在 django 1.10+ 版本之后发生了变化。请参阅此链接 - ***.com/questions/3644902/…【参考方案2】:试试 arjun 的建议,但没有 request 作为参数
【讨论】:
以上是关于如果 user.is_authenticated 没有登录用户 django的主要内容,如果未能解决你的问题,请参考以下文章
一个简单的django user.is_authenticated问题