Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 8, 2015 17:58:47

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

[SOLVED] Проблема с валидацией значения SQLAlchemy

Здравсвуйте.

При использовании фильтров 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 (Сен. 8, 2015 20:23:15)

Офлайн

#2 Сен. 8, 2015 19:27:47

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

[SOLVED] Проблема с валидацией значения SQLAlchemy

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version