Flask WTform validering på flere felt

stemmer
0

Hva er den beste måten å validere en WTform basert på to eller flere oppføringer? Dvs. i skjemaet nedenfor jeg ønsker å validere at et selskap med den medfølgende navn og adresse ikke allerede finnes i databasen.

class CompanyForm(FlaskForm):
    name=StringField('Company Name', validators=[DataRequired()])
    address=StringField('Street Address', validators=[DataRequired()])

Noe sånt som dette...

    def validate_name(self, name, address):
        company = Company.query.filter_by(name=name.data, address=address.data).first()
        if company is None:
            raise ValidationError('This company already exists in our database.')

Jeg leste gjennom dokumentasjon og lignende spørsmål om det, men jeg kan fortsatt ikke helt finne det ut.

Publisert på 02/09/2018 klokken 05:23
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Prøv noe som dette .. (en endret versjon av tekstutdrag her )

class CompanyForm(FlaskForm):
    name = StringField('Company', [validators.DataRequired()])
    address = StringField('Street Address', [validators.DataRequired()])

    def validate(self):
        rv = FlaskForm.validate(self)
        if not rv:
            return False

        company = Company.query.filter_by(name=self.name.data, address=self.address.data).first()
        if company is not None:
            self.name.errors.append('Company already exists at that address')
            return False

        return True
Svarte 02/09/2018 kl. 17:14
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more