小编Ole*_*mov的帖子

动态选择WTForms Flask SelectField

我正在尝试使用FlaskForms将userID变量传递给WTForms.首先,我将展示工作正常的代码,然后我需要修改的代码(我不知道如何部分).我正在添加与某个组关联的新名称.

FlaskForm模型:

class AddName(FlaskForm):
    name =StringField('Device name', validators=[InputRequired(),Length(min=4, max=30)])
    groupID = SelectField('Payload Type', choices=[(1,"Group1"),(2,"Group2")], validators=[InputRequired])
Run Code Online (Sandbox Code Playgroud)

查看型号:

@app.route('/dashboard/addname', methods=['GET', 'POST'])
def addname():
    form=AddName()
    if form.validate_on_submit():
        name=Name(form.name.data,form.groupID.data)
        db.session.add(name)
        db.session.commit()
        return "New name added"
Run Code Online (Sandbox Code Playgroud)

模板:

              <form method="POST" action="/dashboard/addname">
                  <h2>Add name</h2>
                  {{ form.hidden_tag() }}
                  {{ wtf.form_field(form.name) }}
                  {{ wtf.form_field(form.groupID) }}
                  <button type="submit">Add name</button>
              </form>
Run Code Online (Sandbox Code Playgroud)

我在下拉列表中看到了正确的列表,并在提交时给出了正确的数字.

任务:我需要根据current_user.userID传递不同的列表.我正在使用SQLAlchemy构建列表,通过从DB中的表进行查询,因此My Flask视图是:

@app.route('/dashboard/addname', methods=['GET', 'POST'])
def addname():
    available_groups=db.session.query(Groups).filter(Groups.userID == currend_user.userID).all()
    #Now forming the list of tuples, so it's ok for SelectField
    groups_list=[(i.groupID, i.groupName) for i in …
Run Code Online (Sandbox Code Playgroud)

python flask flask-wtforms

5
推荐指数
1
解决办法
8760
查看次数

标签 统计

flask ×1

flask-wtforms ×1

python ×1