Могу ли я игнорировать «UndefinedError» Jinja2 во время тестов?

Я использую Flask с Flask-WTF. Я решил отключить защиту CSRF в тестах, так как тестирование с ней довольно неудобно, и я не хочу тестировать Flask / Flask-WTF. Однако это поднимает еще одну проблему:

jinja2.exceptions.UndefinedError: 'trip_planner.auth.forms.LoginForm object' has no attribute 'csrf_token'

Оскорбительный шаблон выглядит следующим образом:

{% extends "base.html" %}

{% block main %}
    <form method="POST">
        {{ form.csrf_token }}
        <div>
            {{ form.username.label }}{{ form.username }}
        </div>
        <div>
            {{ form.password.label }}{{ form.password }}
        </div>
        <div>
            <button type="submit">Login</button>
        </div>
    </form>
{% endblock %}

Мое понимание таково: если CSRF полностью отключен, WTForms не утруждает себя вводом поля токена CSRF в форму.

Могу ли я заставить Джинджу игнорировать эту ошибку или иначе избежать этой проблемы?

Всего 1 ответ


После некоторого прочтения, я считаю, что нашел решение.

Замена form.csrf_token на form.hidden_tag отобразит поле CSRF, если оно присутствует, независимо от имени поля.


Есть идеи?

10000