Инициализация переменной класса Flask WTFForm для использования в SelectField - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь прочитать список из БД, заполнить переменную и использовать эту переменную в списке.

Я использую Flask WTF, python 2.7

Способ применения приложенияbuild:

form.py

class NewStatusForm(Form):
  SOURCE=[]
  source_id = SelectField('Source Code', [DataRequired()],
        choices = OrderedDict(SOURCE),prepend_blank = False)

  def __init__(self,**kwargs):
    # Call Flask-SQLAlchemy's constructor.
    super(NewStatusForm, self).__init__(**kwargs)

    for key, value in kwargs.iteritems():
        if key=='sources':
            SOURCE=value

Я хочу, чтобы переменная SOURCE содержала список из БД

views.py выглядит так:

@status_blueprint.route('/status/new', methods = ['GET', 'POST'])
def status_new()

form = 
NewStatusForm(obj=status, sources=global_list_of_sources)

global_list_of_sources содержит список из db

, form.html довольно прост

<form method="POST" action="/">
{{ form.csrf_token }}
{{ source_id.label }} {{ source_id }}
<input type="submit" value="Select">

Как я могу инициализировать SOURCE для источников, чтобы получитьсписок?Прямо сейчас я всегда получаю SOURCE empty = [] и нет списка с source_id

1 Ответ

0 голосов
/ 05 декабря 2018

Я нашел обходной путь:

в views.py

 form = NewStatusForm(obj = status)


 form.source_id.choices=OrderedDict(global_list_of_sources),prepend_blank = False)

и в forms.py:

source_id = SelectField('Source Code', [DataRequired()],choices = [])
...