Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在flask中验证WTF窗体中的两个validate_字段_Python_Flask_Sqlalchemy - Fatal编程技术网

Python 如何在flask中验证WTF窗体中的两个validate_字段

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

这里我有两个验证函数,用于检查它是否已经存在于数据库中。但我想检查两者是否作为一个组合在DB中可用,而不是其中一个或另一个


例如:如果我添加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!")