初始化要在SelectField中使用的Flask WTFForm类变量

时间:2018-12-05 05:58:27

标签: python python-2.7 flask-wtforms

我正在尝试从数据库中读取列表,填充变量并在列表中使用该变量。

我正在使用Flask WTF,python 2.7

应用程序的构建方式:

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为空= [],并且没有带有source_id的列表

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方法:

在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 = [])