Форум сайта python.su
Добрый вечер.
Код
@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']}
Офлайн
1.
for set in data:
form = SetsForm(data=set.items())
form = SetsForm(data=set)
Офлайн
FishHook
После того как написал пост я вспомнил про множества и переименовал переменную, но мне это не помогло.
А items(). Это я уже пробовал различные варианты передачи в форму. Так-то да, без items().
Офлайн
Бог ты мой. Зачем так сложно??? Мой мозг выбежал и пошел играть с хорьком
Короче. Проще. Я смотрю Вы пытаетесь освоить Flask. Это позитивная задача. Есть есть скайп, то киньте его в личку. Смогу провести ликбез если будет надо…
Офлайн
Вот так валидация проходит с 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
Отредактировано balalay12 (Май 21, 2016 12:26:18)
Офлайн