Колба WTform проверки на нескольких полях

голоса
0

Что это лучший способ для проверки WTform на основе двух или более записей? Т.е. в форме ниже, я хочу, чтобы подтвердить, что компания с предоставленным именем и адресом уже не существует в базе данных.

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

Что-то вроде этого...

    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.')

Я прочитал в документации и подобные вопросы на SO, но я до сих пор не могу до конца понять это.

Задан 02/09/2018 в 05:23
источник пользователем
На других языках...                            


1 ответов

голоса
0

Попробуйте что - то вроде этого .. (исправленный вариант сниппета здесь )

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
Ответил 02/09/2018 в 17:14
источник пользователем

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