11from flask_wtf import FlaskForm
2- from wtforms import StringField ,PasswordField ,SubmitField , BooleanField
3- from wtforms .validators import Required , Email ,EqualTo
2+ from wtforms import StringField , PasswordField , SubmitField , BooleanField , FileField , TextAreaField
3+ from wtforms .validators import DataRequired , Email , EqualTo
44from ..models import User
55from wtforms import ValidationError
66
77
88class RegistrationForm (FlaskForm ):
99
10- email = StringField ('Your Email Address' ,validators = [Required (),Email ()])
11- username = StringField ('Enter your username' ,validators = [Required ()])
12- password = PasswordField ('Password' ,validators = [Required (),
13- EqualTo ('password_confirm' ,message = 'Passwords must match' )])
14- password_confirm = PasswordField ('Confirm Passwords' ,validators = [Required ()])
10+ email = StringField ('Your Email Address' , validators = [Email (), DataRequired ()])
11+ username = StringField ('Enter your username' , validators = [DataRequired ()])
12+ password = PasswordField ('Password' , validators = [DataRequired (), EqualTo ('password_confirm' , message = 'Passwords must match' )])
13+ password_confirm = PasswordField ('Confirm Passwords' , validators = [DataRequired ()])
1514 submit = SubmitField ('Sign Up' )
1615
1716 def validate_email (self ,data_field ):
@@ -24,7 +23,26 @@ def validate_username(self,data_field):
2423
2524
2625class LoginForm (FlaskForm ):
27- email = StringField ('Your Email Address' ,validators = [Required (),Email ()])
28- password = PasswordField ('Password' ,validators = [ Required ()])
26+ email = StringField ('Your Email Address' , validators = [DataRequired (), Email ()])
27+ password = PasswordField ('Password' , validators = [ DataRequired ()])
2928 remember = BooleanField ('Remember me' )
30- submit = SubmitField ('Sign In' )
29+ submit = SubmitField ('Sign In' )
30+
31+
32+ class UpdateProfileForm (FlaskForm ):
33+
34+ profile_pic = FileField ('Profile Picture' , validators = [])
35+ bio = TextAreaField ('Bio' )
36+ email = StringField ('Your Email Address' , validators = [Email (), DataRequired ()])
37+ username = StringField ('Enter your username' , validators = [DataRequired ()])
38+ password = PasswordField ('Password' , validators = [DataRequired (), EqualTo ('password_confirm' , message = 'Passwords must match' )])
39+ password_confirm = PasswordField ('Confirm Passwords' , validators = [DataRequired ()])
40+ submit = SubmitField ('Sign Up' )
41+
42+ def validate_email (self , email ):
43+ if User .query .filter_by (email = email .data ).first ():
44+ raise ValidationError ('There is an account with that email' )
45+
46+ def validate_username (self , username ):
47+ if User .query .filter_by (username = username .data ).first ():
48+ raise ValidationError ('That username is taken' )
0 commit comments