from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from flask_login import current_user
from wtforms import StringField, PasswordField, SubmitField, BooleanField, SelectField,IntegerField
from wtforms.validators import DataRequired, Length, Email, EqualTo, ValidationError
from gsapp.models import User, Date
YesNo_CHOICES=[('1', 'Yes'), ('2', 'No')]
class ReleaseForm(FlaskForm):
release = StringField('Release', validators=[
DataRequired(), Length(min=2, max=3)])
product = StringField('Product', validators=[DataRequired()])
yesno = SelectField(label='Yes/No', choices=YesNo_CHOICES)
duration = IntegerField(label='Duration',validators=[DataRequired()])
pmfreq = StringField('PMF Required', validators=[DataRequired()])
compreq = StringField('Components Required', validators=[DataRequired()])
cestory = StringField('CE Story', validators=[DataRequired()])
submit = SubmitField('Submit')
def validate_product(self,product):
date = Date.query.filter_by(product=product.data).all()
if date:
raise ValidationError(
"You've already have added for the selected, Thank-you!")
def validate_release(self,release):
date = Date.query.filter_by(release=release.data).all()
if date:
raise ValidationError(
"You've already have added for the selected, Thank-you!")
Здесь у меня есть две функции проверки, которая проверяет, находится ли она уже в БД. Но я хочу проверить, если оба вместе как комбинация, доступная в БД, не или-или.
Например: если я добавлю релиз = 50 и продукт PS1, а затем попробую, если я попробую релиз = 50 и продукт как XBOX1, это разрешит мне, если я снова не попытаюсь добавить те же продукты в тот же выпуск.