Source code for mini_wiki.auth.forms
from flask.ext.wtf import Form
from wtforms import (StringField, PasswordField, BooleanField, SubmitField,
ValidationError)
from wtforms.validators import Required, Regexp, Length, Email, EqualTo
from ..models import User
[docs]class LoginForm(Form):
email = StringField('Email or Username', validators=[Required(),
Length(1, 64)])
password = PasswordField('password', validators=[Required()])
remember_me = BooleanField('Keep me logged in')
submit = SubmitField('Log In')
[docs]class RegistrationForm(Form):
email = StringField('Email', validators=[Required(),
Length(1, 64),
Email()])
username = StringField('Username', validators=[
Required(),
Length(1, 64),
Regexp(r'^[a-zA-Z][a-zA-Z_.]*$', 0, 'Username must only contain '
'numbers, letters, dots or underscores.')])
password = PasswordField('Password', validators=[Required(),
EqualTo('password2', 'Passwords must match.')])
password2 = PasswordField('Confirm password', validators=[Required()])
submit = SubmitField('Register')
[docs] def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered.')
[docs] def validate_username(self, field):
if User.query.filter_by(username=field.data).first():
raise ValidationError('Username already in use.')