Ответ 1
Откажитесь от is_superuser
объекта User
:
{% if request.user.is_superuser %}
...
<button>...</button>
...
{% else %}
...
{% endif %}
EDIT: после @mustafa-0x комментариев
Вышеупомянутое предполагает, что у вас django.core.context_processors.request
включен в настройку TEMPLATE_CONTEXT_PROCESSORS
, которая не является значением по умолчанию.
Значение по умолчанию для 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',
)
уже включает django.contrib.auth.context_processors.auth
(и, в частности, не включает в себя контекстный процессор request
), что означает, что в большинстве случаев у вас уже будет доступ к {{ user }}
без необходимости добавлять его в свой контекст через представление, или включить контекстный процессор request
для доступа к пользователю, как описано выше, через {{ request.user }}