Найти - Пользователи
Полная версия: Flask WTF!!!
Начало » Web » Flask WTF!!!
1
balalay12
Добрый вечер.

Код
    @login_required
    def post(self):
        data = request.get_json()
        for set in data:
            print('1', set)
            repeats = set.pop('repeats')
            del set['exercise_name']
            print('2', set)
            # print(type(set['exercise']))
            form = SetsForm(data=set.items())
            print('3', form.date.data, form.exercise.data)
            if form.validate():
                print('validate')
                return '', 200
            else:
                print(form.errors)
                return '', 200

Есть вот такой код, но дело в том что ведет он себя как-то не правильно.
Выдает вот такую ошибку
1 {'repeats': [{'repeats': 123123, 'weight': 112}, {'repeats': 2323, 'weight': 2323}], 'exercise_name': 'Сгибания запястий за спиной со штангой в положении стоя', 'exercise': 99, 'date': '2016-05-14'}
2 {'exercise': 99, 'date': '2016-05-14'}
3 2016-05-14 None
{'exercise': ['Not a valid integer value']}

Перезапускаю сервер обновляю страницу и ошибка уже такая
1 {'date': '2016-05-14', 'exercise': 119, 'exercise_name': 'Поднятие диска, лежа головой вверх на скамье', 'repeats': [{'weight': 12, 'repeats': 12}, {'weight': 34, 'repeats': 34}]}
2 {'date': '2016-05-14', 'exercise': 119}
3 None 119
{'date': ['Not a valid date value']}

Не могу понять почему так происходит. Куда деваются данные. То ли я что-то не так сделал то ли в упор очевидного не вижу.
FishHook
1.
for set in data:
Никогда так не делайте. set - встроенная функция питона, никогда не переопределяйте встроенные функции
https://docs.python.org/2/library/functions.html
2.
form = SetsForm(data=set.items())
А здесь точно надо items? Логичнее было бы так
form = SetsForm(data=set)
balalay12
FishHook
После того как написал пост я вспомнил про множества и переименовал переменную, но мне это не помогло.
А items(). Это я уже пробовал различные варианты передачи в форму. Так-то да, без items().
4kpt_IV
Бог ты мой. Зачем так сложно??? Мой мозг выбежал и пошел играть с хорьком
Короче. Проще. Я смотрю Вы пытаетесь освоить Flask. Это позитивная задача. Есть есть скайп, то киньте его в личку. Смогу провести ликбез если будет надо…
balalay12
Вот так валидация проходит с 1 упражнением, но если отправить несколько, то отпадывает с ошибкой
ValueError: too many values to unpack (expected 2)
@login_required
def post(self):
    data = request.get_json(force=True)
    for day in data:
        test = dict()
        test['date'] = day.pop('date')
        test['exercise'] = day.pop('exercise')
        form = SetsForm(data=test)
        if form.validate():
            print('validate')
        else:
            print(form.errors)
            return '', 200
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