我有一个Flask应用程序,我希望在其中一个页面上打开两个下拉列表。第一个是部门,第二个是用户。我希望在同一页面中更改部门时动态更改用户。
我无法使用Post请求,因为我需要下一步进行Post请求以获取用户的特定详细信息以下是我的尝试
@app.route('/ITMODE/Users/', methods=['GET', 'POST'])
@login_required
def UserModifier():
if Session.get('user_id') is None or Session['dept_id']!=1:
return redirect(url_for('login'))
else:
if request.method == 'GET':
departments= session.query(Department)
#UserRequests= session.query(Requests).order_by(desc(Requests.Record_Created)).all()
return render_template('DefaultAdminSelectDepartment.html', title='Users' ,dept=departments)
else:
department_id = request.form.get('departments')
Session['department_id']=department_id
return redirect(url_for('UserModifierDept'))
@app.route('/ITMODE/Users/departments/', methods=['GET', 'POST'])
@login_required
def UserModifierDept():
if Session.get('user_id') is None or Session['dept_id']!=1:
return redirect(url_for('login'))
else:
if request.method == 'GET':
department = Session['department_id']
departments= session.query(Department)
Users=session.query(User.name).filter(User.dept_id==department).order_by(User.name)
return render_template('DefaultAdminManageUsers.html', title='Users' ,users=Users,dept=departments)
这是:DefaultAdminSelectDepartment.html的主要部分
<br>
<form method="POST">
<label for="departments">Departments : </label>
<select name="departments" id="departments" onchange='this.form.submit()' onfocus="this.selectedIndex = -1;">
{% for item in dept %}
<option value="{{ item.id }}">{{item.Dept_name}}</option>
{% endfor %}
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
这是DefaultAdminManageUsers.html的主要部分:
<form method="PUT">
<label for="departments">Departments : </label>
<select name="departments" id="departments" onchange='this.form.submit()' onfocus="this.selectedIndex = -1;">
{% for item in dept %}
<option value="{{ item.id }}">{{item.Dept_name}}</option>
{% endfor %}
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
<form method="POST">
<label for="users">Users : </label>
<select name="users" id="users" onchange='this.form.submit()' onfocus="this.selectedIndex = -1;">
{% for user in users %}
<option value="{{ user.id }}">{{user.name}}</option>
{% endfor %}
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
PUT请求部分是一次失败的尝试,主要问题在于处理来自同一HTML模板的两个POST请求,或者以某种方式使下拉菜单动态化,使得如果部门更改,则其他下拉菜单中的用户也会更改。