FlaskWTFDeprecationWarning с безопасностью колбы

Я получаю предупреждение каждый раз, когда я использую безопасность колбы.

FlaskWTFDeprecationWarning: "flask_wtf.Form" has been renamed to "FlaskForm" 
and will be removed in 1.0.

это проблема с безопасностью колбы или что-то, что я мог бы решить сам? Я использую Flask-Security==1.7.5

from flask_security import current_user, login_required, RoleMixin, Security, 
SQLAlchemyUserDatastore, UserMixin, utils

Я, похоже, не импортирую Flask_WTF напрямую.

2 ответов


похоже, что 1.7.5-это последняя версия Flask-Security. И последняя версия Flask-WTF-0.13 (убедитесь, что у вас есть это установлено, проверив pip freeze).

поскольку вы не используете Flask-WTF напрямую, проблема не в вашем коде. Проблема исходит из самого кода Flask-Security,который имеет колбу-WTF в качестве зависимости.

способ, которым Flask-Security импортирует класс формы из Flask-WTF, устарел, поэтому вы видите ошибку, когда эта строка гласит:

from flask_wtf import Form as BaseForm

https://github.com/mattupstate/flask-security/blob/e01cd63a214969cf8e4ee800d398e1c43b460c7f/flask_security/forms.py#L15

вы можете либо открыть проблему на Flask-Security (не стесняйтесь ссылаться на этот вопрос), либо отправить запрос на вытягивание самостоятельно автору, обновляющему эту строку до не устаревшего импорта

from flask_wtf import FlaskForm as BaseForm

перед отправкой обязательно выполните тесты до / после.

немного более контекст, вы можете использовать git blame, чтобы увидеть фиксацию, которая в последний раз изменила устаревшую строку импорта в Flask-Security (6f68f1d) 15 августа 2013 года.

делая то же самое на колбе-WTF, вы можете видеть, что осуждение было введено в 42cc475 30 июня 2016.


мой ответ:не присущий вашей конкретной ситуации. Однако то же самое предупреждающее сообщение возникает, когда мы кодируем это:

from flask_wtf import Form

исправить эту проблему, вы должны использовать FlaskForm на месте Form:

from flask_wtf import FlaskForm

это выделено на GitHub и я просто хочу поделиться решением здесь, чтобы помочь любому возможному деятелю, который может столкнуться с ним в будущем.