нельзя использовать current_user в макросе jinja2?

Я использую Flask-Login, который обеспечиваетcurrent_user Объект в шаблонах. Я хочу написать макрос для отображения формы комментария или ссылки для входа в зависимости от того, вошел ли пользователь в систему. Если я использую этот код непосредственно в шаблоне, он работает:

{% if current_user.is_authenticated %}
    {{ quick_form(form) }}
{% else %}
    <a href="{{ url_for('auth.login') }}">Log In with Github</a>
{% endif %}

Я поместил тот же код в макрос и импортировал макрос в свой шаблон.

{% macro comment_form(form) %}
    {% if current_user.is_authenticated %}
        ...
    {% endif %}
{% endmacro %}
{% from "macros/comments.html" import comment_form %}
{% extends "base.html" %}
{% block content %}
    {# ... content goes here ... #}
    {{ comment_form(form) }}
{% endblock %}

Когда я пытаюсь загрузить эту страницу, я получаю сообщение об ошибке:

jinja2.exceptions.UndefinedError: 'current_user' is undefined

Конечно, легкий способ обойтиcurrent_user в качестве параметра и использовать его (делая подписьcomment_form(user, form)), хотя это довольно уродливое решение (имо).

Почему макрос не использует контекстный процессор? Разве это не содержит контекст?

Ответы на вопрос(3)

Ваш ответ на вопрос