WTForms Selectfield - Как получить только значения определенного столбца? - PullRequest
0 голосов
/ 21 октября 2018

Во-первых, я недавно начал с Flask, так что пока я полностью новичок, но мне это нравится, и надеюсь, что в дальнейшем я буду совершенствовать свои навыки.Тем не менее, могут быть некоторые очень простые вещи, которые мне не хватает, например, следующее: я создал форму с включенным полем выбора:

class AddProductForm(Form):
      subcategory = SelectField('')

И после этого я извлекаю результаты из запроса и применяю их квыбор SelectField.

...

cur = conn.cursor()

cur.execute("SELECT name FROM subcategory")

subcategories = cur.fetchall()

cur.close()

form = AddProductForm(CombinedMultiDict((request.files, request.form)))

form.subcategory.choices = [(subcat, subcat) for subcat in subcategories]

...

Пока все работает хорошо, я получил все результаты в SelectField, но я вернул их также с именем столбца, так что в основном это значение длякаждая опция поля выбора выглядит в таком формате (где «имя» - это имя столбца в базе данных:

{'name': 'Gears and bolts'}

Мой вопрос - вместо всей этой предыдущей строки можно отображать толькозначение (в данном случае «шестерни и болты») как текст опции поля выбора?

Спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Я выяснил, основываясь на этом ответе здесь , и я положу ответ здесь на всякий случай, если кто-то нуждается в нем.По сути, я изменил эту строку:

form.subcategory.choices = [(subcat, subcat) for subcat in subcategories]

на следующую:

form.subcategory.choices = [(subcat, subcat['name']) for subcat in subcategories]

И, черт возьми ... это были некоторые базовые вещи, чувак.Ранее я пытался использовать subcat.name вместо subcat['name'], что, очевидно, было неправильным способом доступа к значению, и я получал AttributeError: 'dict' object has no attribute 'name'

...