Форум сайта python.su
Здравсвуйте.
При использовании фильтров flask-admin, натыкаюсь на разные типы фильтров: Пусто, и Равно.
По понятным причинам, если в колонке содержится значение 0, то оно попадает под фильтр Равно(0). Если в колонке пустое значение, то попадает под Пусто.
Это слегка вызывает путанницу, и я решил отказаться от пустых значений.
Добавив в модель таблицы default=0.
Оказалось что “0”, не проходит проверку на равне с пустым значением при использовании wtforms.validators.required.
Попробовал написать свой валидатор следующего содержвания:
def count_valid(form, field): if not isinstance(field.data, int): raise ValidationError('не число')
TypeError: unorderable types: int() > NoneType()
Отредактировано kaldown (Сен. 8, 2015 20:23:15)
Офлайн
NOTE this validator used to be called Required but the way it behaved (requiring coerced data, not input data) meant it functioned in a way which was not symmetric to the Optional validator and furthermore caused confusion with certain fields which coerced data to ‘falsey’ values like 0, Decimal(0), time(0) etc. Unless a very specific reason exists, we recommend using the InputRequired instead.
Понятно что вместо required нежно использовать InputRequired, тогда 0 не отбрасывается.
stackoverflow
Отредактировано kaldown (Сен. 8, 2015 20:22:38)
Офлайн