Как правильно добавить заголовки столбцов в список динамических полей выбора WTForms - PullRequest
0 голосов
/ 17 мая 2019

У меня есть фрейм данных Pandas, и я пытаюсь вернуть заголовки столбцов в динамический список WTForm в приложении Flask.Однако, когда я пытаюсь отправить форму HTML, я получаю ошибку проверки.Вот моя ошибка класса формы.

   data = pd.read_excel("sampledata.xlsx")
   col_headers = list(data.columns)

   col_list = list(col_headers)
   dic_list = {i : col_list[i] for i in range(0, len(col_list))}


   class StatementForm(FlaskForm):
   date = SelectField('Date', choices = [(key, dic_list[key]) for key in dic_list])

Я проверил HTML-форму, вручную введя кортеж в список выбора, и это сработало.Очевидно, проблема в параметре 'date' и выборе.

Ваша помощь в пересмотре кода наиболее ценится.

1 Ответ

0 голосов
/ 20 мая 2019

Попробуйте использовать следующее, чтобы создать свой выбор:

choices = [(str(x), y) for (x, y) in list(enumerate(data.columns))]

Разница в том, что это значение в приведенном выше коде является строкой. Согласно документации WFT-Forms:

В полях выбора сохраняется свойство выбора, представляющее собой последовательность пар (значение, метка). Часть значения может быть любого типа в теории, но так как данные формы отправляются браузером в виде строк, вам необходимо предоставить функцию, которая может привести представление строки обратно к сопоставимому объекту.

В вашей версии вы пытаетесь передать целые числа в качестве значения, поэтому оно ломается.

...