An alternate method for current Django versions:
{% if user.is_authenticated %}
<p>Welcome, {{ user.get_username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
Note:
- Use
request.user.get_username()
in views &user.get_username
in templates. Preferred over referringusername
attribute directly. Source - This template context variable is available if a RequestContext is used.
django.contrib.auth.context_processors.auth
is enabled by default & contains the variable user- You do NOT need to enable
django.core.context_processors.request
template context processor.
Source : https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates