В представлении context['adminStatus']
определяется только тогда, когда пользователь вошел в систему. Между тем в шаблоне вы проверяете adminStatus, когда пользователь не вошел в систему.
Во-первых, оператор return context
должен быть один раз с отступом, чтобы контекст (с или без adminStatus) был доступен независимо от:
def get_context_data(self, **kwargs):
context = super(HomePageView, self).get_context_data(**kwargs)
if self.request.user.is_authenticated:
adminStatus = CustomUser.objects.get(id=self.request.user.id)
context['adminStatus'] = adminStatus.isAdmin
return context
Далее, да, возможно, вам нужно исправить логику вашего шаблона. Предполагая, что вы хотите проверить adminStatus, только если пользователь вошел в систему, он должен выглядеть следующим образом:
{% if user.is_authenticated %}
<h4>Hi {{ user.username }}!</h4>
...
{% if adminStatus %}
<h1>test</h1>
...
{% endif %}
{% else %}
<p>You are not logged in</p>
...
{% endif %}
Оригинальный ответ:
В представлении вам, скорее всего, не нужно указывать строку adminStatus.isAdmin
.
context['adminStatus'] = adminStatus.isAdmin
Если он передан в контекст как логическое значение, вы сможете использовать это выражение в шаблоне:
{% if adminStatus %}