我有一个表单通过电子邮件搜索用户以删除它们。删除用户并返回页面后,旧搜索词仍在表单中。如何在提交后从表单中删除值?
使用request.form.clear()
或request.form['email'] = ""
加注TypeError: 'ImmutableMultiDict' objects are immutable
。
if 'delete_user' in request.form:
# don't allow current user to delete themselves
if user.id != current_user.id:
User.delete(user)
flash(user.username + " has been deleted", 'warning')
user = None
request.form.clear()
searchForm = SearchForm(request.form, obj=user)
return render_template("users/admin.html", user=user, form=searchForm)
答案 0 :(得分:1)
在您的代码中,看起来搜索字段可能使用form=searchForm
填充,该SearchForm(request.form, obj=user)
正在通过 formParams = {key: value for key, value in x.items() if key != "email"}
searchForm = SearchForm(formParams, obj=user)
return render_template("users/admin.html", user=user,
form=searchForm)
构建。您需要调整您传递给该构造函数的内容。像下面这样的东西应该有效:
{{1}}
答案 1 :(得分:0)
如果您正在使用WTForms,则可以在表单中进行验证。还没有明显的理由将用户对象传递给用于搜索以供用户删除的表单。获取用户是基于输入的表单的工作。此外,假设这是一个POST请求,您应该在POST成功后重定向,而不是手动清除表单。
List<SplunkEvent>