How do you get your template/view to recognize whether or not a logged in user is a super user or not?
There are certain buttons on my forms (in the template) that I want completely hidden if the user is not a super-user
How would you go about doing that?
Check out is_superuser
on the User
object:
{% if request.user.is_superuser %}
<button></button>
{% else %}
{# ... #}
{% endif %}
EDIT: after @mustafa-0x comments
The above assumes that you have django.core.context_processors.request
included in your TEMPLATE_CONTEXT_PROCESSORS
setting which isn't the default.
The default setting for TEMPLATE_CONTEXT_PROCESSORS
:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.tz',
# 'django.core.context_processors.request',
'django.contrib.messages.context_processors.messages',
)
already includes the django.contrib.auth.context_processors.auth
(and notably doesn't include the request
context processor) meaning that in most cases you will already have access to {{ user }}
without the need to add it to your context via the view, or enable the request
context processor to access the user as above via {{ request.user }}