Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask security中注册页面上的额外字段_Python_Flask_Flask Security - Fatal编程技术网

Python flask security中注册页面上的额外字段

Python flask security中注册页面上的额外字段,python,flask,flask-security,Python,Flask,Flask Security,我正试图在我的烧瓶申请表中创建一个注册页。我正在使用Flask安全性进行用户管理。我已经设置好了;标准注册页面没有正确呈现。然而,我的模型包含许多额外的必填字段,因此我需要更新视图 我的安全配置文件如下所示: from models import * from flask_security.forms import ConfirmRegisterForm, Required class ExtendedConfirmRegisterForm(ConfirmRegisterForm):

我正试图在我的烧瓶申请表中创建一个注册页。我正在使用Flask安全性进行用户管理。我已经设置好了;标准注册页面没有正确呈现。然而,我的模型包含许多额外的必填字段,因此我需要更新视图

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

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)
我的表格:

{% extends "base.html" %}
{% from "security/_macros.html" import render_field_with_errors, render_field %}
{% include "security/_messages.html" %}
{% block main%}
<h1>Registreer</h1>
<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
  {{ register_user_form.hidden_tag() }}
  {{ render_field(register_user_form.first_name) }}
  {{ render_field(register_user_form.last_name) }}
  {{ render_field_with_errors(register_user_form.email) }}
  {{ render_field_with_errors(register_user_form.password) }}
  {% if register_user_form.password_confirm %}
    {{ render_field_with_errors(register_user_form.password_confirm) }}
  {% endif %}
  {{ render_field(register_user_form.submit) }}
</form>
{% endblock %}

我真的不知道如何继续。如何解决此问题?

我自己发现了问题

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


如果您得到类似以下内容:
jinja2.exceptions.UndefinedError:'flask\u security.forms.confirmRegisterPerform对象'没有属性“first\u name”


然后可能是由于
安全性\u CONFIRMABLE
,您将其设置为true,这意味着flask将使用不同的表单。更多详细信息:

这会抛出
InterfaceError:Error绑定参数0-可能是不支持的类型
嘿,我得到了
jinja2.exceptions.undfinedError:“flask\u security.forms.confirmRegisterPerform对象”没有属性“first\u name”
@user299709您曾经解决过这个问题吗?我也有同样的问题。@JeffB。我发现问题出在上下文处理器装饰器上。在最初的响应中,OP使用了“confirm\u register\u form”,而对于register页面,在实例化安全对象时应该使用“register\u form”。详细信息可在此处找到:
AttributeError: 'CharField' object has no attribute '__call__'
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)