0
我試圖讓什麼應該是一個非常簡單的驗證器使用WTForms - 確保輸入是a)呈現和b)一些類型的數字(float或int都是好的)。我寫了下面的類和WTForms它添加到validators.py庫:WTForms自定義驗證器崩潰,而不是返回錯誤信息
class MyValidator(object):
def __init__(self, message=None):
self.message = message
def __call__(self, form, field):
if not field.data:
if self.message is None:
message = field.gettext('This field is required.')
return ValidationError(self.message)
try:
val = float(field.data)
except NameError:
self.message = ('Input must be a number')
raise ValidationError(self.message)
return field.data
並將其添加到我的表格:
class foo(Form):
bar = IntegerField('foo',[validators.MyValidator()])
這使我的瓶的應用程序時,我得到驗證崩潰階段(if not foo.validate
,其中foo是Foo類的實例),與此回溯:
File "C:\Users\~~\AppData\Local\Programs\Python\Python35\lib\site-packages\wtforms\validators.py", line 158, in __call__
val = float(field.data)
TypeError: float() argument must be a string or a number, not 'NoneType'
這是煩了。我如何才能返回False?我錯過了明顯的東西嗎?