Python 用户表单定制

Python 用户表单定制,python,flask,flask-user,Python,Flask,Flask User,Flask user ResendEmailConfirmationForm类不会像ForgotPasswordForm等其他类表单那样验证用户电子邮件(),后者包含以下验证方法: def validate_email(form, field): user_manager = current_app.user_manager if user_manager.USER_SHOW_EMAIL_DOES_NOT_EXIST: user, use

Flask user ResendEmailConfirmationForm类不会像ForgotPasswordForm等其他类表单那样验证用户电子邮件(),后者包含以下验证方法:

def validate_email(form, field):
        user_manager =  current_app.user_manager
        if user_manager.USER_SHOW_EMAIL_DOES_NOT_EXIST:
            user, user_email = user_manager.db_manager.get_user_and_user_email_by_email(field.data)
            if not user:
                raise ValidationError(_('%(username_or_email)s does not exist', username_or_email=_('Email')))
我想使用他们在文档中的自定义方法将此验证片段添加到ResendEmailConfirmationForm(:

在forms.py文件中,我添加了以下内容:

from flask_user.forms import ResendEmailConfirmationForm
from flask import current_app
from flask_user import UserManager
from wtforms import ValidationError

class CustomResendEmailConfirmationForm(ResendEmailConfirmationForm):

    def validate_email(form, field):
        user_manager =  current_app.user_manager
        
        user, user_email = user_manager.db_manager.get_user_and_user_email_by_email(field.data)
        print(user, user_email)
        if not user:
            raise ValidationError(_('%(email)s does not exist', email=_('Email')))

class CustomUserManager(UserManager):

    def customize(self, app):
        # Configure customized forms
        self.ResendEmailConfirmationForm = CustomResendEmailConfirmationForm
init.py文件中,我替换了:

user_manager = UserManager(app, db, User)

但是由于某种原因,新的验证方法没有被继承。我不知道我缺少了什么。 有人能帮我找出答案吗?谢谢!

有关可能的答案,请参阅
from um_project.forms import CustomUserManager
....
user_manager = CustomUserManager(app, db, User)