gpt4 book ai didi

Django user.is_authenticated 在某些地方工作,而不是其他地方

转载 作者:行者123 更新时间:2023-12-04 16:25:12 25 4
gpt4 key购买 nike

在我的模板中,我有以下内容:

        <ul class="tabbed" id="network-tabs">
{% if user.is_authenticated %}
<li><a href="{% url acct-my-profile %}">My Account</a></li>
<li><a href="{% url acct-logout %}">Log Out</a></li>
{% else %}
<li><a href="{% url acct-login %}">Log in</a></li>
<li><a href="{% url acct-register %}">Register</a></li>
{% endif %}
</ul>

它似乎工作正常,除非创建的页面有一个 @login_required 装饰器,在这种情况下,页面工作正常,但导航看起来好像用户没有登录,即使他们是。

最佳答案

您应该检查您的 View 函数以查看 user 的位置。变量来自。除非你特意路过 user从观点进入上下文,那是你的问题。

您确实可以访问 request.user ,但是,在从具有 @login_required 的 View 呈现的模板中,它将始终返回 true装饰器。

不过,我可以肯定地告诉你装饰器没有任何问题的原因是在 User 的代码中。和 AnonymousUser (位于 django.contrib.auth.models) is_authenticated方法对 User 严格返回 true和假 AnonymousUser .装饰者不会也不能改变这一点。这意味着您的模板实际上并没有得到 User您正在检查的对象 user .

关于Django user.is_authenticated 在某些地方工作,而不是其他地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com