kann nicht verwendet werden current_user in jinja2 Makro?

Ich benutze Flask-Login, das das @ liefecurrent_user Objekt in Vorlagen. Ich möchte ein Makro schreiben, um ein Kommentarformular oder einen Anmeldelink anzuzeigen, je nachdem, ob der Benutzer angemeldet ist. Wenn ich diesen Code direkt in der Vorlage verwende, funktioniert das:

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

Ich habe den gleichen Code in ein Makro eingefügt und das Makro in meine Vorlage importiert.

{% 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 %}

Wenn ich versuche, diese Seite zu laden, wird der folgende Fehler angezeigt:

jinja2.exceptions.UndefinedError: 'current_user' is undefined

Natürlich ist die einfache Umgehungcurrent_user als Parameter und benutze das (Signatur erstellencomment_form(user, form)), obwohl dies eine ziemlich hässliche Lösung ist (imo).

Warum verwendet das Makro nicht den Kontextprozessor? Enthält es nicht den Kontext?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage