У меня есть FlaskForm
с именем AddStudentForm
, который выглядит следующим образом:
class AddStudentForm(FlaskForm):
first_name = StringField('First Name', validators=[DataRequired(), Length(min=3, max=24)])
last_name = StringField('Last Name', validators=[DataRequired(), Length(min=3, max=24)])
dob = DateField('Date of Birth', format='%d/%m/%Y', validators=[DataRequired()])
cls = SelectField('Class', choices=[(member.value, name) for name, member in Level.__members__.items()])
sec = SelectField('Section', choices=[('A', 'SEC-A'), ('B', 'SEC-B'), ('C', 'SEC-C')])
roll = IntegerField('Roll Number', validators=[DataRequired(), NumberRange(min=1, max=400)])
email = StringField('Email', validators=[DataRequired(), Email()])
submit = SubmitField('Add')
Я хочу проверить оба поля cls (сокращение от class) и roll вместе, чтобы комбинация этих 2 полей осталасьуникальный. На одном поле, таком как email
Я могу сделать это легко, , но как я могу сделать это на нескольких полях?
Мои связанные коды следующие (для ссылки.):
Уникальный валидатор электронной почты внутри AddStudentForm
(я хочу что-то подобное для нескольких полей вместе)
def validate_email(self, email):
stud = Student.query.filter_by(email=email.data).first()
if stud:
raise ValidationError('A student is already exists with same email! Please change your email.')
Уровень Enum
определениедля cls
поле
class Level(Enum):
V = 'V'
VI = 'VI'
VII = 'VII'
VIII = 'VIII'