问题描述
||
我有一个允许用户编辑其用户信息的模板。
<form method=\"post\">
<table>
<tr>
<td>Username:</td>
<td>{{user[\'username\']}}</td>
</tr>
<tr>
<td>New Password:</td>
<td> <input type=\"password\" name=\"password\"></td>
<td>{% if form.password.errors %} {{form.password.errors}} {% endif %}<td>
</tr>
<tr>
<td>Re-enter Password:</td>
<td> <input type=\"password\" name=\"confirm_password\">
</td>
</tr>
<input type=\'hidden\' name=\'username\' value=\"{{user[\'username\']}}\">
<tr>
<td><input type=\"submit\" value=\"Submit\"></td>
</tr>
</table>
</form>
我还有一个查看功能,可以处理用户的此类编辑。我当前使用的数据库是带有MongoKit模块的MongoDB。到目前为止,我只能在视图功能中做到这一点,但是没有运气。
def edit():
username = request.args.get(\'user\')
user = User.find_one({\'username\':username}) # Is this a correct way of doing it?
form = UserForm(**what should be placed here?**,obj=user)
if request.method == \'POST\' and form.validate():
form.populate_obj(user)
user.save()
return \'updated\'
return render_template(\'edituser.html\',form=form,user=user)
为此,我正在通过populate_obj(obj)。在这件事上,我找不到太多帮助。为了使ѭ2工作,我该怎么办?
解决方法
应将ѭ4have传递给ѭ3to,以使用POST请求中可用的值(如果有)填充它。
form = UserForm(request.form,obj=user)
, 您在使用Flask-WTF吗?如果是这样,请查看以下示例代码:
https://github.com/sean-/flask-skeleton/blob/master/skeleton/modules/aaa/views.py#L13
具体来说,您将:
def edit():
form = UserForm()
if form.validate_on_submit():
# Commit your form data
底线是,如果您使用的是7英镑,我不确定您的问题是什么。如果您未使用Flask-WTF
,请使用Flask-WTF
。
, 对于Flask-WTF,您可以这样写
form = UserForm(obj=user)
Thant会工作!