在Django中使用{%if%} {%else%}

时间:2019-07-25 11:26:42

标签: python html django

如何使用If-Statement从登录页面隐藏用户名。 我在登录后使用此代码在主页上显示用户名,并且可以正常工作

{%if request.user.first_name%}{{request.user.first_name}}{%else%}{{user}}{%endif%}

,但是问题在于它在登录页面中也显示为“ AnonymousUser”。我怎么藏起来

有什么想法吗?

3 个答案:

答案 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)?