2013-08-06 5 views
2

Я хочу создать форму с WTForms, где поле является SelectField со специальной (выборочной) проверкой, которая (например) проверяет что-то еще, если текущее значение недействительно (т. Е. Это не экземпляр определенных опций) ,Как переопределить pre_validate и post_validate в wtforms?

Я прочитал в the documentation, что правильный способ сделать это - переопределить функции pre_validate или post_validate в соответствии с потребностями.

Таким образом, мой подход заключается в следующем:

1 - создать новое поле под названием MySelectForm:

class MySelectField(SelectField): 
    def post_validate(self, form, validation_stopped): 
     """overrides post validation""" 
     #Here is my custom validation 

2- я использую это поле вместо исходной в моей форме

Я не могу понять: если, как я читал в документах, post_validate принимает вход «Форма, в которую принадлежит поле», как мне получить доступ к текущему значению поля, которое является экземпляром MySelectField?

Другими словами, может ли кто-нибудь сделать пример того, как переопределить pre_validate или post_validate?

ответ