如何使用If-Statement从登录页面隐藏用户名。 我在登录后使用此代码在主页上显示用户名,并且可以正常工作
{%if request.user.first_name%}{{request.user.first_name}}{%else%}{{user}}{%endif%}
,但是问题在于它在登录页面中也显示为“ AnonymousUser”。我怎么藏起来
有什么想法吗?
答案 0 :(得分:4)
首先,您应该检查用户是否已通过身份验证,如果已通过身份验证,则显示first_name或用户名,否则只需提供登录名和注册链接即可。
{% if user.is_authenticated %}
{%if request.user.first_name%}
{{request.user.first_name}}
{%else%}
{{request.user.username}}
{%endif%}
{% else %}
<a href="" >login</a>
<a href="" >Signup</a>
{% endif %}
答案 1 :(得分:2)
您可以在此处使用.is_authenticated
[Django-doc]:
{% if request.user.is_authenticated %} ... {% endif %}
对于未经身份验证的用户(例如AnonymousUser
),检查将失败。
答案 2 :(得分:2)
检查一下:
{% if user.is_authenticated %}{% endif %}
相关: How to check if a user is logged in (how to properly use user.is_authenticated)?