Могу ли я игнорировать "UndefinedError" Jinja2 во время тестов? - PullRequest
0 голосов
/ 10 февраля 2020

Я использую 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 Ответ

0 голосов
/ 10 февраля 2020

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

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

...