Найти - Пользователи
Полная версия: [SOLVED] Проблема с валидацией значения SQLAlchemy
Начало » Базы данных » [SOLVED] Проблема с валидацией значения SQLAlchemy
1
kaldown
Здравсвуйте.

При использовании фильтров 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()

Может нужно переписать validators.required, таким образом чтобы 0 не считался False ?

Спасибо.
kaldown
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB