ооо, извечная проблема. у каждого свой костыль
давайте и я вставлю 5 копеек. Вариант для статического меню. меня чувак научил.
menu.html
<nav>
<ul class="menu">
<li {% if is_home %}class = "active"{% endif %}><a href="{% url index %}">Главная</a></li>
<li{% if is_portfolio %}class = "active"{% endif %}><a href="{% url works %}">Портфолио</a></li>
<li{% if is_blog %}class = "active"{% endif %}><a href="{% url blog %}">Мой блог</a></li>
</ul>
</nav>
base.html
<!-- html -->
{%block menu%}
{%include "menu.html"%}
{%endblock menu%}
index.html
<!-- html -->
{%block menu%}
{%include "menu.html" with is_home=True%}
{%endblock menu%}
blog.html
<!-- html -->
{%block menu%}
{%include "menu.html" with is_blog=True%}
{%endblock menu%}
имхо, так проще, чем городить очередной костыль с чужими батарейками, джаваскриптом или request.path, который, кстати, с вложенными пунктами меню может увеличить необходимое количество кода