Форум сайта python.su
Добрый день!
Сделал простую форму для проверки данных
class SetAdd(FlaskForm): date = DateTimeField(validators=[ DataRequired(), ]) exercise = IntegerField(validators=[ DataRequired(), ])
Офлайн
balalay12Через HTTP вообще можно передать только буквы. Показывайте, как создаете объект формы, что у вас в реквесте.
Передаю буквы и форма ни на что не ругается
Офлайн
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'))
Офлайн
balalay12
что б ругалось, нужно делать валидацию
Офлайн
В общем вместо
set_form = SetAdd(data={'date': training['date'], 'exercise': training['exercise']['id']})
set_form = SetAdd(formdata=MultiDict({'date': training['date'], 'exercise': training['exercise']['id']}))
Офлайн