diff options
Diffstat (limited to 'app/forms.py')
| -rw-r--r-- | app/forms.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/app/forms.py b/app/forms.py index 919db70..75de178 100644 --- a/app/forms.py +++ b/app/forms.py @@ -1,6 +1,11 @@ + from flask_wtf import FlaskForm + from wtforms import StringField, PasswordField, BooleanField, SubmitField -from wtforms.validators import DataRequired +from wtforms.validators import DataRequired, ValidationError, Email, EqualTo + +from app.models import User + class LoginForm(FlaskForm): username = StringField("Username", validators=[DataRequired()]) @@ -9,4 +14,25 @@ class LoginForm(FlaskForm): submit = SubmitField("Sign In") +class RegistrationForm(FlaskForm): + username = StringField("Username", validators=[DataRequired()]) + email = StringField("Email", validators=[DataRequired(), Email()]) + password = PasswordField("Password", validators=[DataRequired()]) + password2 = PasswordField( + "Repeat Password", validators=[DataRequired(), EqualTo("password")] + ) + submit = SubmitField("Register") + + def validate_username(self, username): + user = User.query.filter_by(username=username.data).first() + if user is not None: + raise ValidationError( + "Username already in use, please use a different one." + ) + def validate_email(self, email): + user = User.query.filter_by(email=email.data).first() + if user is not None: + raise ValidationError( + "Email address already in use, please use a different one." + ) |
