flasksecurity注册页面上的额外字段

2024-10-02 00:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着在我的烧瓶申请中做一个登记页。我使用Flask Security进行用户管理。我已经正确地设置了它;标准注册页确实正确地呈现了。但是,我的模型包含很多额外的必填字段,所以我需要更新视图。在

我的安全配置文件如下所示:

from models import *
from flask_security.forms import ConfirmRegisterForm, Required

class ExtendedConfirmRegisterForm(ConfirmRegisterForm):
    first_name = CharField('Voornaam', [Required()])
    last_name = CharField('Achternaam', [Required()])        

# Setup Flask-Security
user_datastore = PeeweeUserDatastore(db, Student, Role, StudentRoleRel)
security = Security(app, user_datastore,
         confirm_register_form=ExtendedConfirmRegisterForm)

我的表格:

^{pr2}$

当我试图打开register页面时,出现以下错误:

AttributeError: 'CharField' object has no attribute '__call__'

我真的不知道该怎么办。我如何解决这个问题?在


Tags: 用户namefromimportregisterflask烧瓶required
2条回答

如果你得到的东西是:jinja2.exceptions.UndefinedError: 'flask_security.forms.ConfirmRegisterForm object' has no attribute 'first_name'

那么很可能是由于SECURITY_CONFIRMABLE,您将其设置为true,这意味着flask将使用不同的形式。更多详细信息:https://github.com/mattupstate/flask-security/issues/54

我自己发现了问题。在

在我的安全配置文件中,我忘记了导入TextField(在最初的版本中,我使用了CharField,但是这个类型不可用)

from models import *
from flask_security.forms import ConfirmRegisterForm, Required, TextField

class ExtendedConfirmRegisterForm(ConfirmRegisterForm):
    first_name = TextField('Voornaam', [Required()])
    last_name = TextField('Achternaam', [Required()])        

# Setup Flask-Security
user_datastore = PeeweeUserDatastore(db, Student, Role, StudentRoleRel)
security = Security(app, user_datastore,
         confirm_register_form=ExtendedConfirmRegisterForm)

相关问题 更多 >

    热门问题