Я пытаюсь сделать страницу регистрации в моем приложении Flask. Я использую Flask-Security для управления пользователями. Я настроил его правильно; стандартная страница регистрации отображалась правильно. Однако моя модель состоит из нескольких дополнительных обязательных полей, поэтому мне нужно было обновить представление.Дополнительные поля на странице регистрации в flask-security
Мой security_config файл выглядит следующим образом:
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 %}
Когда я пытаюсь открыть страницу регистра, я получаю следующее сообщение об ошибке:
AttributeError: 'CharField' object has no attribute '__call__'
Я не знаю, как это сделать. Как я могу решить эту проблему?
это бросает 'InterfaceError: Ошибка параметра 0 связывающую - вероятно неподдерживаемый type' – KJW
эй я получаю 'jinja2.exceptions.UndefinedError: 'flask_security.forms.ConfirmRegisterForm object' не имеет атрибута 'first_name'' – user299709