Python 如何在flask中验证WTF窗体中的两个validate_字段
这里我有两个验证函数,用于检查它是否已经存在于数据库中。但我想检查两者是否作为一个组合在DB中可用,而不是其中一个或另一个Python 如何在flask中验证WTF窗体中的两个validate_字段,python,flask,sqlalchemy,Python,Flask,Sqlalchemy,这里我有两个验证函数,用于检查它是否已经存在于数据库中。但我想检查两者是否作为一个组合在DB中可用,而不是其中一个或另一个 例如:如果我添加release=50和product PS1,下一次尝试如果我尝试release=50和product as XBOX1,它应该允许我,除非我再次尝试将相同的产品添加到同一版本。self参数是允许您访问任何表单字段值的表单实例 from flask_wtf import FlaskForm from flask_wtf.file import FileFie
例如:如果我添加release=50和product PS1,下一次尝试如果我尝试release=50和product as XBOX1,它应该允许我,除非我再次尝试将相同的产品添加到同一版本。self参数是允许您访问任何表单字段值的表单实例
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!")
def validate_product(self,product):
release_data = self.release.data
date = Date.query.filter_by(product=product.data, release=release_data).all()
if date:
raise ValidationError(
"You've already have added for the selected, Thank-you!")
def validate_release(self,release):
product_data = self.product.data
date = Date.query.filter_by(release=release.data, product=product_data).all()
if date:
raise ValidationError(
"You've already have added for the selected, Thank-you!")