Использую функцию для создания меню.
from django import template
from MyLearnSiteApp.models import *
register = template.Library()
categories = Category.objects.all()
@register.inclusion_tag('MyLearnSiteApp/menu_tpl_header.html')
def show_menu_header(categories=categories):
return {'categories': categories}
В самом шаблоне через цикл вывожу категории, хочу сделать кнопки входа и выхода:
<ul class="nav-menu nav navbar-nav">
<li><a href="{% url 'popular' %}">Popular</a></li>
<li><a href="{% url 'most' %}">Most</a></li>
{% for item in categories %}
<li class="cat-{{forloop.counter}}"><a href="{{ item.get_absolute_url }}">{{ item.title }}</a></li>
{% endfor %}
{% if user.is_authenticated %}
<li><a href="{% url 'logout' %}">LogOut</a></li>
{% else %}
<li><a href="{% url 'register' %}">Register</a></li>
<li><a href="{% url 'login' %}">Login</a></li>
{% endif %}
{{ request }}
</ul>
Дело в том что в обычном html if user.is_authenticated работает, а тут нет.
Данную функцию вставил в header для формирования меню сайта.
Так же добавил в settins.py:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)