如何验证烧瓶中WTFFORMS中的两个validate_fields

时间:2020-03-07 18:18:22

标签: python flask sqlalchemy

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!")

在这里,我有两个验证函数,用于检查其是否已在数据库中。但是我想检查一下是否两者都可以在数据库中以非组合方式使用。

例如:如果我添加release = 50和产品PS1,然后再尝试如果我尝试将release = 50和产品作为XBOX1,则它应该允许我,除非我再次尝试将相同的产品添加到同一版本。

1 个答案:

答案 0 :(得分:0)

const state={ data: [ {cword:"শ্বশুর", wword: "শশুর"}, {cword: "শাশুড়ী", wword: "শ্বাশুড়ি"}, {cword: "ব্রাহ্মনবাড়িয়া",wword: "ব্রাম্মনবাড়ীয়া"}, {cword: "স্টুডিও", wword: "ষ্টুডিও"} ] } state.data&&state.data.map(obj=>{ console.log(obj.cword) })参数是表单实例,使您可以访问任何表单字段值。

self