如果 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】:

‍‍i‍‍s‍_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问题

2 Jul 18 Django,BBS

django模版 常用变量

我们能否在Python Flask中跟踪当前活动的会话

尽管使用了 if 语句,但 RelatedObjectDoesNotExist 错误

博客园--网站首页