Custom validators in WTForms using Flask Custom validators in WTForms using Flask flask flask

Custom validators in WTForms using Flask


You can write a custom validator within a form by writing a validate_{field_name} method. If it raises a ValidationError, the form will not be valid and will display the error.

For your specific case, here's a solution using regex. It finds the match for the string, and then uses a bit of splitting to get back the scores. After validating the form you can access the scores by form.score1, form.score2.

import refrom flask_wtf import FlaskFormclass MatchForm(FlaskForm):    match1 = StringField("Russia-Saudi Arabia", validators=[DataRequired()])    def validate_match1(form, field):        if not re.search(r"^[0-9]+:[0-9]+$", field.data):            raise ValidationError("Invalid input syntax")        s1, s2 = form.data.split(":")        form.score1 = int(s1)        form.score2 = int(s2)