Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 27, 2017 15:55:59

balalay12
Зарегистрирован: 2014-07-28
Сообщения: 92
Репутация: +  4  -
Профиль   Адрес электронной почты  

Flask-WTF IntegerField не работает

Добрый день!
Сделал простую форму для проверки данных

 class SetAdd(FlaskForm):
    date = DateTimeField(validators=[
        DataRequired(),
    ])
    exercise = IntegerField(validators=[
        DataRequired(),
    ])

не срабатывает IntegerField. Передаю буквы и форма ни на что не ругается, но если ничего не передавать, то тогда вылазит ошибка.
Подскажите что не так.

Офлайн

#2 Сен. 27, 2017 16:26:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask-WTF IntegerField не работает

balalay12
Передаю буквы и форма ни на что не ругается
Через HTTP вообще можно передать только буквы. Показывайте, как создаете объект формы, что у вас в реквесте.



Офлайн

#3 Сен. 27, 2017 17:51:00

balalay12
Зарегистрирован: 2014-07-28
Сообщения: 92
Репутация: +  4  -
Профиль   Адрес электронной почты  

Flask-WTF IntegerField не работает

FishHook
Я понимаю насчет строк. Я и хочу чтобы это поле мне вернуло число.
В исходниках вроде как делается приведение строки к числу.

 class IntegerField(Field):
    """
    A text field, except all input is coerced to an integer.  Erroneous input
    is ignored and will not be accepted as a value.
    """
    widget = widgets.TextInput()
    def __init__(self, label=None, validators=None, **kwargs):
        super(IntegerField, self).__init__(label, validators, **kwargs)
    def _value(self):
        if self.raw_data:
            return self.raw_data[0]
        elif self.data is not None:
            return text_type(self.data)
        else:
            return ''
    def process_formdata(self, valuelist):
        if valuelist:
            try:
                self.data = int(valuelist[0])
            except ValueError:
                self.data = None
                raise ValueError(self.gettext('Not a valid integer value'))

Или я ошибаюсь?

Офлайн

#4 Сен. 28, 2017 10:49:46

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Flask-WTF IntegerField не работает

balalay12
что б ругалось, нужно делать валидацию

Офлайн

#5 Сен. 28, 2017 15:34:07

balalay12
Зарегистрирован: 2014-07-28
Сообщения: 92
Репутация: +  4  -
Профиль   Адрес электронной почты  

Flask-WTF IntegerField не работает

В общем вместо

 set_form = SetAdd(data={'date': training['date'], 'exercise': training['exercise']['id']})
сделал так
 set_form = SetAdd(formdata=MultiDict({'date': training['date'], 'exercise': training['exercise']['id']}))

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version