Flask WT表格中的加入会话对象
我试图根据组织id填充角色,但WT表单似乎不支持会话 view.py 用户表单.pyFlask WT表格中的加入会话对象,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,我试图根据组织id填充角色,但WT表单似乎不支持会话 view.py 用户表单.py 文件“C:\Users\dell\Envs\surveyApp\lib\site packages\flask\globals.py”,第20行,在查找请求中 对象 引发运行时错误('在请求上下文之外工作') 运行时错误:在请求上下文之外工作,正如blender所说,您不能以这种方式使用会话。我能想到的唯一方法是在视图中使用会话,并在呈现模板时发送必要的数据 view.py @users.route('/',
文件“C:\Users\dell\Envs\surveyApp\lib\site packages\flask\globals.py”,第20行,在查找请求中 对象 引发运行时错误('在请求上下文之外工作')
运行时错误:在请求上下文之外工作,正如blender所说,您不能以这种方式使用会话。我能想到的唯一方法是在视图中使用会话,并在呈现模板时发送必要的数据 view.py
@users.route('/', methods=['GET', 'POST'])
@users.route('/manage', methods=['GET', 'POST'])
@login_required
def manage_users():
form = User_Form()
form.organization_id.data = session['user_id']
return render_template('account/manage_users.html', form=form)
并在表单中将“organization_id”标记为文本字段:
class User_Form(Form, session):
# Other fields
organization_id = TextField()
希望它能帮助您。这里的技巧是根据视图中的逻辑设置选项:
def manage_users():
form = User_Form()
if session['user_id'] == 1:
form.role.choices = [('Role1', 'Label1'), ('Role2', 'Label2')]
else:
form.role.choices = [...]
if form.validate():
...
return render_template('account/manage_users.html', form=form)
只要在调用validate()
有关参考信息,请参见WTForms文档。您不能像那样从会话继承。如果您已经可以通过会话变量访问organization\u id
字段,那么该字段的用途是什么?应用程序注册了多个组织,每个组织可以创建自己的角色,从而为单个组织创建不同的角色列表。在创建用户时,我希望organization id列出该组织的相应角色。
class User_Form(Form, session):
# Other fields
organization_id = TextField()
def manage_users():
form = User_Form()
if session['user_id'] == 1:
form.role.choices = [('Role1', 'Label1'), ('Role2', 'Label2')]
else:
form.role.choices = [...]
if form.validate():
...
return render_template('account/manage_users.html', form=form)