示例#1
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.getStates())
    phone = StringField(
        # TODO implement validation logic for state
        'phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired()],
        choices=Genre.getGenres())
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link',
        validators=[URL()])
    website = StringField('website', validators=[URL()])
    image_link = StringField('image_link', validators=[URL()])
    seeking_venue = SelectField('seeking_venue',
                                validators=[DataRequired()],
                                choices=[('Yes', 'Yes'), ('No', 'No')])
    seeking_description = TextAreaField('seeking_description')
示例#2
0
文件: forms.py 项目: ramihage/fyyur
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    address = StringField('address', validators=[DataRequired()])
    phone = StringField('phone', validators=[check_area_code])
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired()],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link',
                                validators=[Optional(), URL()])
    website_link = StringField('website_link', validators=[Optional(), URL()])

    seeking_talent = BooleanField('seeking_talent')

    seeking_description = StringField('seeking_description')

    def validate(self):
        rv = Form.validate(self)
        if not rv:
            return False
        if not is_valid_phone(self.phone.data):
            self.phone.errors.append('Invalid phone number.')
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append('Invalid genre.')
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append('Invalid state.')
            return False
        return True
示例#3
0
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired(), Length(-1, 120)])
    city = StringField('city', validators=[DataRequired(), Length(-1, 120)])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([choice.value for choice in State])],
        choices=State.choices())
    address = StringField('address',
                          validators=[DataRequired(),
                                      Length(-1, 120)])
    # IDEA: add a phone number validator
    phone = StringField('phone')
    image_link = StringField('image_link',
                             validators=[Length(-1, 500),
                                         URL(),
                                         Optional()])
    genres = SelectMultipleField('genres',
                                 validators=[
                                     DataRequired(),
                                     anyof_for_multiple_field(
                                         [choice.value for choice in Genre])
                                 ],
                                 choices=Genre.choices())
    facebook_link = StringField(
        'facebook_link', validators=[Length(-1, 120),
                                     URL(), Optional()])
示例#4
0
class ArtistForm(FlaskForm):
    name = StringField('name', validators=[DataRequired(), Length(-1, 120)])
    city = StringField('city', validators=[DataRequired(), Length(-1, 120)])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([choice.value for choice in State])],
        choices=State.choices())
    phone = StringField(
        # TODO implement validation logic for state
        'phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired(), custom_validator],
        choices=Genre.choices())
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link',
        validators=[URL()])
    seeking_venue = BooleanField(
        # TODO implement enum restriction
        'seeking_venue')
    seeking_description = StringField(
        # TODO implement enum restriction
        'seeking_description')
示例#5
0
    def _my_genres(form, field):
        enum_genres = [value for choice, value in Genre.choices()]

        # Check if every vales is in genre enum
        for item in field.data:
            if not item in enum_genres:
                raise ValidationError
示例#6
0
文件: forms.py 项目: irvnet/FSND
class VenueForm(Form):
    def validate(self):
        """Define a custom validate method in your Form:"""
        rv = Form.validate(self)
        if not rv:
            return False
        if not is_valid_phone(self.phone.data):
            self.phone.errors.append(':: Invalid phone number:')
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append(':: Invalid genres.')
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append(':: Invalid state.')
            return False
        # if pass validation
        return True

    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    address = StringField('address', validators=[DataRequired()])

    phone = StringField('phone')

    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired()],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])
    website_link = StringField('website_link')
    seeking_talent = BooleanField('seeking_talent')
    seeking_description = StringField('seeking_description')
示例#7
0
class ArtistForm(FlaskForm):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([item.value for item in State])],
        choices=State.items())
    phone = StringField('phone',
                        validators=[
                            Regexp(r'^[0-9\-\+]+$',
                                   0,
                                   message='The phone must be valid')
                        ])
    genres = SelectMultipleField('genres',
                                 validators=[
                                     DataRequired(),
                                     validate_genres(
                                         [item.value for item in Genre])
                                 ],
                                 choices=Genre.items())
    image_link = StringField('image_link', validators=[URL()])
    facebook_link = StringField('facebook_link', validators=[URL()])
    website = StringField('website', validators=[URL()])
    seeking_venue = BooleanField('seeking_venue', )
    seeking_description = TextAreaField('seeking_description',
                                        validators=[Length(min=10, max=500)])
示例#8
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([choice.value for choice in State])],
        choices=State.choices())
    phone = StringField(
        # DONE implement validation logic for state
        'phone',
        validators=[Length(-1, 10)])
    image_link = StringField('image_link',
                             validators=[Length(-1, 500),
                                         URL(),
                                         Optional()])
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[
            DataRequired(),
            anyof_multiple_field([choice.value for choice in Genre])
        ],
        choices=Genre.choices())
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link',
        validators=[Length(-1, 500), URL(), Optional()])
    website_link = StringField('website_link',
                               validators=[Length(-1, 500),
                                           URL(),
                                           Optional()])
    seeking_description = StringField('seeking_description',
                                      validators=[Optional()])
示例#9
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired('Name is required.')])
    city = StringField(
        'city', validators=[DataRequired('City is required.'),
                            Length(0, 120)])
    state = SelectField('state',
                        validators=[DataRequired('State is required.')],
                        choices=State.choices())
    phone = StringField('phone')
    genres = SelectMultipleField(
        'genres',
        validators=[DataRequired('At least one genre is required.')],
        choices=Genre.choices())
    image_link = URLField('image_link',
                          validators=[
                              DataRequired('Image link is required.'),
                              URL(message='Image link must be an URL.'),
                              Length(0, 500)
                          ])
    website_link = URLField('website_link', validators=[Length(0, 120)])
    facebook_link = URLField('facebook_link', validators=[Length(0, 120)])
    albums = StringField('albums', validators=[Length(0, 500)])
    seeking_venue = BooleanField('seeking_venue', default='checked')
    seeking_description = StringField('seeking_description',
                                      default="I'm looking for venues.")
    available_times = BooleanField('available_times')
    available_start = DateTimeLocalField('available_start',
                                         default=datetime.utcnow,
                                         format='%Y-%m-%dT%H:%M')
    available_end = DateTimeLocalField('available_end',
                                       default=datetime.utcnow,
                                       format='%Y-%m-%dT%H:%M')
示例#10
0
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired('Name is required.')])
    city = StringField(
        'city', validators=[DataRequired('City is required.'),
                            Length(0, 120)])
    state = SelectField('state',
                        validators=[DataRequired('State is required.')],
                        choices=State.choices())
    address = StringField('address', validators=[Length(0, 120)])
    phone = StringField('phone')
    genres = SelectMultipleField(
        'genres',
        validators=[DataRequired('At least one genre is required.')],
        choices=Genre.choices())
    image_link = URLField('image_link',
                          validators=[
                              DataRequired('Image link is required.'),
                              URL(message='Image link must be an URL.'),
                              Length(0, 500)
                          ])
    website_link = URLField('website_link', validators=[Length(0, 120)])
    facebook_link = URLField('facebook_link', validators=[Length(0, 120)])
    seeking_talent = BooleanField('seeking_talent', default='checked')
    seeking_description = StringField('seeking_description',
                                      default='We are looking for talent.')
示例#11
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([choice.value for choice in State])],
        choices=State.state_choices())
    ## TODO implement validation logic for state
    phone = StringField('phone',
                        validators=[Optional(),
                                    Regexp(r'^[0-9\-\+]+$')])
    website = StringField('facebook_link', validators=[URL(), Optional()])
    image_link = StringField('image_link', validators=[URL(), Optional()])
    facebook_link = StringField(
        ## TODO implement enum restriction
        'facebook_link',
        validators=[URL(), Optional()])
    genres = SelectMultipleField(
        ## TODO implement enum restriction
        'genres',
        validators=[DataRequired(), genre_validator],
        choices=Genre.g_choices())
    seeking_venue = SelectField('seeking_venue',
                                validators=[DataRequired()],
                                choices=[('Yes', 'Yes'), ('No', 'No')])
    seeking_description = StringField('seeking_description',
                                      validators=[Optional()])
示例#12
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    phone = StringField(
        # TODO implement validation logic for state
        'phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired()],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])

    website_link = StringField('website_link', validators=[URL()])

    seeking_venue = BooleanField('seeking_venue')

    seeking_description = StringField('seeking_description')

    def validate(self):
        rv = FlaskForm.validate(self)
        if not rv:
            return False
        if not is_valid_phone(self.phone.data):
            self.phone.errors.append('Invalid phone.')
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append('Invalid genres.')
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append('Invalid state.')
            return False
        return true
示例#13
0
文件: forms.py 项目: michealF/Fyyur
class ArtistForm(Form):
    name = StringField(
        'name', validators=[DataRequired()]
    )
    city = StringField(
        'city', validators=[DataRequired()]
    )
    state = SelectField(
        'state', validators=[DataRequired()],
        choices=State.choices()
    )
    address = StringField(
        'address', validators=[DataRequired()]
    )

    phone = StringField(
        # TODO implement validation logic for state
        'phone', validators=[DataRequired()]
    )
    image_link = StringField(
        'image_link'
    )
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres', validators=[DataRequired()],
        choices=Genre.choices()
    )
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link', validators=[URL()]
    )
    seeking_venue = SelectField(
        'seeking_venue', validators=[DataRequired()],
        choices=[('Yes', 'Yes'), ('No', 'No')]
    )
    website = StringField(
        'website', validators=[URL()]
    )
    seeking_description = StringField(
        'seeking_description'
    )

    def validate(self):
        """Define a custom validate method in your Form:"""
        rv = ArtistForm.validate(self)
        if not rv:
            return False
        if not is_valid_phone(self.phone.data):
            self.phone.errors.append('Invalid phone.')
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append('Invalid genres.')
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append('Invalid state.')
            return False
        # if pass validation
        return True
示例#14
0
class ArtistForm(Form):
    name = StringField(
        'Artist name', validators=[DataRequired(message='Please enter an artist name'), Length(min=2, max=50)]
    )
    city = StringField(
        'City', validators=[DataRequired('Please enter the artist\'s city'), Length(min=2, max=50)]
    )
    state = SelectField(
        'State', validators=[DataRequired(message='Please select the artist\'s state'), Length(min=2, max=50), AnyOf([choice.value for choice in State])],
        choices=State.choices()
    )
    phone = StringField(
        'Phone Number'
    )
    image_link = StringField(
        'Image link'
    )
    genres = SelectMultipleField(
        'Genres', validators=[DataRequired(), Length(max=150), ValidateValues([choice.value for choice in Genre])],
        choices=Genre.choices()
    )
    website = StringField(
        'Website', validators=[optional(strip_whitespace=False), URL(message='Please enter a valid URL'), Length(min=10, max=120)]
    )
    facebook_link = StringField(
        'Facebook link', validators=[optional(strip_whitespace=False), URL(message='Please enter a valid URL'), Length(min=15, max=120)]
    )
    seeking_venue = BooleanField(
        'Available to Venues'
    )
    seeking_description = TextAreaField(
        'Description for venues', validators=[Length(max=500)]
    )
    monday = BooleanField(
        'Monday', default='checked'
    )
    tuesday = BooleanField(
        'Tuesday', default='checked'
    )
    wednesday = BooleanField(
        'Wednesday', default='checked'
    )
    thursday = BooleanField(
        'Thursday', default='checked'
    )
    friday = BooleanField(
        'Friday', default='checked'
    )
    saturday = BooleanField(
        'Saturday', default='checked'
    )
    sunday = BooleanField(
        'Sunday', default='checked'
    )
示例#15
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    phone = StringField('phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired()],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])
示例#16
0
文件: forms.py 项目: maxlcode/fyyur
 def validate(self):
     rv = Form.validate(self)
     if not rv:
         return False
     if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
         self.genres.errors.append('Invalid genres.')
         return False
     if self.state.data not in dict(State.choices()).keys():
         self.state.errors.append('Invalid state.')
         return False
     # if pass validation
     return True
 def validate(self):
     # """Define a custom validate method in your Form:"""
     rv = Form.validate(self)
     if not rv:
         return False
     if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
         self.genres.errors.append('Invalid genre.')
         return False
     if self.state.data not in dict(State.choices()).keys():
         self.state.errors.append('Invalid state.')
         return False
     # if pass validation
     return True
示例#18
0
 def validate(self):
     rv = FlaskForm.validate(self)
     if not rv:
         return False
     if not is_valid_phone(self.phone.data):
         self.phone.errors.append('Invalid phone.')
         return False
     if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
         self.genres.errors.append('Invalid genres.')
         return False
     if self.state.data not in dict(State.choices()).keys():
         self.state.errors.append('Invalid state.')
         return False
     return true
示例#19
0
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    address = StringField('address', validators=[DataRequired()])
    phone = StringField('phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired()],
        choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])
示例#20
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired(), is_valid_state],
                        choices=State.choices())
    phone = StringField('phone', validators=[is_valid_phone])
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired(), is_valid_genre],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link',
                                validators=[Optional(), URL()])
    website = StringField('website')
    seeking_venue = BooleanField('seeking_venue')
    seeking_description = StringField('seeking_description')
示例#21
0
class ArtistForm(Form):
    name = StringField(
        'name', validators=[DataRequired()]
    )
    city = StringField(
        'city', validators=[DataRequired()]
    )
    state = SelectField(
        'state', validators=[DataRequired()],
        choices=State.choices()
    )
    phone = StringField(
        # TODO implement validation logic for state
      'phone' ,
        validators=[DataRequired(),
        Length(min=10, max=11)
       
         ]
      
    )
    address = StringField(
        # TODO implement validation logic for state
      'address' ,
        validators=[DataRequired(),

         ]
      
    )
    image_link = StringField(
        'image_link'
    )
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres', validators=[DataRequired()],
        choices=Genre.choices()
    )
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link', validators=[URL()]
    )
    website = StringField(
        'website', validators=[URL()]
    )
    seeking_venue = SelectField('seeking_venue', choices=[(False, 'No'), (True, 'Yes')])
    seeking_description = StringField(
        'seeking_description', validators=[DataRequired()]
    )
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    phone = StringField(
        # TODO implement validation logic for state
        'phone',
        validators=[
            DataRequired(),
            Regexp('^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$')
        ])
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired()],
        choices=Genre.choices())
    seeking_venues = BooleanField('seeking_venues', default=False)
    seeking_description = StringField('seeking_description')
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link',
        validators=[URL()])
    website = StringField(
        # TODO implement enum restriction
        'website',
        validators=[URL()])
    image_link = StringField(
        # TODO implement enum restriction
        'image_link',
        validators=[URL()])

    def validate(self):
        # """Define a custom validate method in your Form:"""
        rv = Form.validate(self)
        if not rv:
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append('Invalid genre.')
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append('Invalid state.')
            return False
        # if pass validation
        return True
示例#23
0
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired(), is_valid_state],
                        choices=State.choices())
    address = StringField('address', validators=[DataRequired()])
    phone = StringField('phone', validators=[is_valid_phone])
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired(), is_valid_genre],
        choices=Genre.choices())
    facebook_link = StringField('facebook_link',
                                validators=[Optional(), URL()])
    website = StringField('website')
    seeking_talent = BooleanField('seeking_talent')
    seeking_description = StringField('seeking_description')
示例#24
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.statelist())
    phone = StringField(
        # TODO implement validation logic for state
        'phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField(
        # TODO implement enum restriction
        'genres',
        validators=[DataRequired()],
        choices=Genre.genvals())
    facebook_link = StringField(
        # TODO implement enum restriction
        'facebook_link',
        validators=[URL()])
示例#25
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[
                            DataRequired(),
                            AnyOf([(choice.value) for choice in State])
                        ],
                        choices=State.choices())
    phone = StringField('phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[DataRequired(), genre_validator],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])

    website = StringField('website', validators=[URL()])
    seeking_venue = BooleanField('seeking_venue')
    seeking_description = TextAreaField('seeking_description')
示例#26
0
文件: forms.py 项目: yanbin-pan/fyurr
class ArtistForm(FlaskForm):
    name = StringField("name", validators=[DataRequired()])
    city = StringField("city", validators=[DataRequired()])
    state = SelectField("state",
                        validators=[DataRequired()],
                        choices=State.choices())

    phone = StringField(
        "phone",
        validators=[
            # DataRequired(),
            Regexp("^[0-9]*$",
                   message="Phone number should only contain digits"),
        ],
    )

    image_link = StringField("image_link")
    genres = SelectMultipleField("genres",
                                 validators=[DataRequired()],
                                 choices=Genre.choices())
    facebook_link = StringField("facebook_link", validators=[URL()])

    website = StringField("website", validators=[URL()])

    seeking_venue = BooleanField("seeking_venue")

    seeking_description = StringField("seeking_description")

    def validate(self):
        """Define a custom validate method in your Form:"""
        rv = FlaskForm.validate(self)
        if not rv:
            return False
        if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
            self.genres.errors.append("Invalid genre.")
            return False
        if self.state.data not in dict(State.choices()).keys():
            self.state.errors.append("Invalid state.")
            return False
        # if pass validation
        return True
示例#27
0
文件: forms.py 项目: gshbears/fyyur
 def validate(self):
     """Define a custom validate method in your Form:"""
     rv = FlaskForm.validate(self)
     if not rv:
         return False
     if self.state.data not in dict(State.choices()).keys():
         self.state.errors.append('Invalid state.')
         return False
     if not set(self.genres.data).issubset(dict(Genre.choices()).keys()):
         self.genres.errors.append('Invalid genres.')
         return False
     if not is_valid_phone(self.phone.data):
         self.phone.errors.append('Invalid phone format.')
         return False
     if not is_website_valid(self.website.data):
         self.website.errors.append('Invalid website url')
         return False
     if not is_facebook_valid(self.facebook_link.data):
         self.facebook_link.errors.append('Invalid Facebook url')
         return False
     return True
示例#28
0
class VenueForm(Form):
    def validate_phone(self, phone):
        if not re.search(r"^[0-9]{3}-[0-9]{3}-[0-9]{4}$", field.data):
            raise ValidationError("Invalid phone number.")

    def validate_genres(self, genres):
        genres_values = [choice[1] for choice in genres_choices]
        for value in field.data:
            if value not in genres_values:
                raise ValidationError('Invalid genres value.')

    name = StringField('name', validators=[DataRequired(), Length(-1, 120)])
    city = StringField('city', validators=[DataRequired(), Length(-1, 120)])
    state = SelectField(
        'state',
        validators=[DataRequired(),
                    AnyOf([choice.value for choice in State])],
        choices=State.choices())
    address = StringField('address',
                          validators=[DataRequired(),
                                      Length(-1, 120)])
    # IDEA: add a phone number validator

    phone = StringField('phone', validators=[DataRequired()])

    image_link = StringField('image_link',
                             validators=[Length(-1, 500),
                                         URL(),
                                         Optional()])
    genres = SelectMultipleField('genres',
                                 validators=[
                                     DataRequired(),
                                     anyof_for_multiple_field(
                                         [choice.value for choice in Genre])
                                 ],
                                 choices=Genre.choices())

    facebook_link = StringField(
        'facebook_link', validators=[Length(-1, 120),
                                     URL(), Optional()])
示例#29
0
文件: forms.py 项目: Ryran98/Fyyur
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[DataRequired()],
                        choices=State.choices())
    address = StringField('address', validators=[DataRequired()])
    phone = StringField('phone')
    image_link = StringField('image_link')
    genres = SelectMultipleField('genres',
                                 validators=[
                                     DataRequired(),
                                     AnyOf([(choice.value)
                                            for choice in Genre])
                                 ],
                                 choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[URL()])
    website_link = StringField('website_link')

    seeking_talent = BooleanField('seeking_talent')

    seeking_description = StringField('seeking_description')
示例#30
0
class VenueForm(Form):
    name = StringField('name', validators=[DataRequired()])
    city = StringField('city', validators=[DataRequired()])
    state = SelectField('state',
                        validators=[
                            DataRequired(),
                            AnyOf([choice.value for choice in States])
                        ],
                        choices=States.choices())
    address = StringField('address', validators=[DataRequired()])
    phone = StringField('phone', validators=[phone()])
    genres = SelectMultipleField(
        # TODO:[COMPLETED] implement enum restriction
        'genres',
        validators=[DataRequired(), my_genres()],
        choices=Genre.choices())
    facebook_link = StringField('facebook_link', validators=[fb_url()])
    image_link = StringField('image_link', validators=[my_url()])
    website = StringField('website', validators=[my_url()])
    seeking_talent = BooleanField('seeking_talent', default="checked")
    seeking_description = StringField('seeking_description',
                                      validators=[Length(max=256)])