Переключение между двумя классами при использовании WTForms в FLASK - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь создать простое приложение для блога, используя flask. Это приложение имеет Вход и страницу регистрации.

Я указал следующие формы, которые он использует:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo

class RegistrationForm(FlaskForm):
    username = StringField('Username: ', 
                validators=[DataRequired(), Length(min=2, max=20)])
    email = StringField('Email: ',
                validators=[DataRequired(), Email()])
    password = PasswordField('Password: ',
                validators=[DataRequired()])
    confirm_password = PasswordField('Confirm Password: ',
                validators=[DataRequired(), EqualTo('password')])
    submit = SubmitField('Sign Up')

class LoginForm(FlaskForm):
    email = StringField('Email',
                validators=[DataRequired(), Email()])
    password = PasswordField('Password',
                validators=[DataRequired()])
    remember = BooleanField('Remember me?')
    submit = SubmitField('Login')

Когда я пытаюсь вызвать форму, например:

<div class="form-group">
                {{ form.password.label(class="form-control-label") }}
                {{ form.password }}
   </div>

Он всегда будет вызывать класс RegistrationForm.

Я хочу использовать '' '{{form.remember}}' '' из моей LoginForm. Однако я получаю сообщение об ошибке:

'Forms.RegistrationForm объект' не имеет атрибута Loginform

как мне указать WTforms искать в LoginForm?

1 Ответ

0 голосов
/ 26 февраля 2020

Форма, используемая при входе в систему. Страницу html необходимо указать при определении маршрутов.

@app.route("/login", methods=['GET', 'POST'])
def login():
    form = LoginForm()
return render_template('login.html', title='Login', form=form)
...