Задать вопрос
SolovyevMax
@SolovyevMax

Почему макрос в Jinja Flask всё ломает?

Делаю сайт, частично используя сниппеты из exploreflask.com.
Нужно сделать так, что бы подсвечивались ссылки, в навигационном меню, исходя из того, на какой странице сейчас находишься.
Содержание macros.html:
{% macro nav_link(endpoint, text) %}
{% if request.endpoint.endswith(endpoint) %}
    <li class="active two columns animation"><a href="{{ url_for(endpoint) }}">{{text}}</a></li>
{% else %}
    <li class="two columns animation"><a href="{{ url_for(endpoint) }}">{{text}}</a></li>
{% endif %}
{% endmacro %}


Непосредственно в файле layout.html:
{% from "macros.html" import nav_link with context %}
....
        <ul class="top-menu container">
            {{ nav_link('index', 'Главная страница') }}
            {{ nav_link('щерук', 'Не особо главная страница') }}
        </ul>

Но допустим если я перехожу на страницу, которой нет. Выводит не 404 а:
jinja2.exceptions.UndefinedError
UndefinedError: 'None' has no attribute 'ends with'
Как можно с этим справиться? Или что бы подсвечивало первую ссылку по умолчанию, на исключение.
  • Вопрос задан
  • 2714 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@s1dney
{% if request.endpoint == endpoint %}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы