将数据传递给 flask-wtforms 中的多个表单
Passing data to multiple forms in flask-wtforms
考虑一下:
{% for user in users.query.all() %}
<tr>
<form method='POST' action="">
<td>{{form.username}}</td>
<td>{{form.description}}</td>
<td>{{form.submit(value="Update")}}</td>
</form>
</tr>
{% endfor %}
这将为每个用户创建一个我可以更新的小表单,我想用当前数据库数据填充这些表单
我在路由文件中尝试做的事情:
@app.route("/Users")
def listUsers():
users = Users
form = UserForm()
if request.method == 'GET':
for user in users.query.all():
form.username.data = user.username
form.description.data = user.description
return render_template('Users.html', users=users, form=form)
这导致最后一个用户的数据填充了所有表单,我该如何解决这个问题?
我正在考虑为每个与用户匹配的表单分配一个 ID,但我如何才能发送动态数量的表单?
这花了我一段时间,但我找到了解决方法,如果其他人遇到同样的问题,我会post:
我使用 javascript ...创建了一个函数并在 for 循环中调用它,它为我填充了字段
function populateForm(username,description){
var form = document.getElementById('form id here');
form.nextElementSibling.value = username;
form.nextElementSibling.nextElementSibling.textContent = description;
}
请注意,我为输入字段使用了值,为文本字段使用了 textContent,然后在 for 循环中我添加了一个脚本标签
<script>
populateForm('{{user.username}}','{{user,description}}');
</script>
考虑一下:
{% for user in users.query.all() %}
<tr>
<form method='POST' action="">
<td>{{form.username}}</td>
<td>{{form.description}}</td>
<td>{{form.submit(value="Update")}}</td>
</form>
</tr>
{% endfor %}
这将为每个用户创建一个我可以更新的小表单,我想用当前数据库数据填充这些表单
我在路由文件中尝试做的事情:
@app.route("/Users")
def listUsers():
users = Users
form = UserForm()
if request.method == 'GET':
for user in users.query.all():
form.username.data = user.username
form.description.data = user.description
return render_template('Users.html', users=users, form=form)
这导致最后一个用户的数据填充了所有表单,我该如何解决这个问题? 我正在考虑为每个与用户匹配的表单分配一个 ID,但我如何才能发送动态数量的表单?
这花了我一段时间,但我找到了解决方法,如果其他人遇到同样的问题,我会post:
我使用 javascript ...创建了一个函数并在 for 循环中调用它,它为我填充了字段
function populateForm(username,description){
var form = document.getElementById('form id here');
form.nextElementSibling.value = username;
form.nextElementSibling.nextElementSibling.textContent = description;
}
请注意,我为输入字段使用了值,为文本字段使用了 textContent,然后在 for 循环中我添加了一个脚本标签
<script>
populateForm('{{user.username}}','{{user,description}}');
</script>