使用 WTForms Flask 微框架的 populate_obj( ) 方法
我有一个模板,允许用户编辑他们的用户信息。
<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>
我还有一个查看功能来处理用户的此类编辑。我当前使用的数据库是 MongoDB 以及 MongoKit 模块。到目前为止,我只能在视图函数中做到这一点,但运气不佳。
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) 为此目的。在这件事上我找不到太多帮助。我应该怎么做才能让 populate_obj()
正常工作?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
UserForm
应该将request.form
传递到其中,以使用 POST 请求中可用的值(如果有)填充它。UserForm
should haverequest.form
passed into it to populate it with the values available in the POST request (if any).您是否使用 Flask-WTF ?如果是这样,请查看以下示例代码:
https://github.com/sean-/flask-sculpture/blob/master/sculpture/modules/aaa/views.py#L13
具体来说,您会:
底线,如果您使用
Flask-WTF
,我不确定你的问题是什么。如果您不使用Flask-WTF
,请使用Flask-WTF
。Are you using Flask-WTF? If so, check out the following sample code:
https://github.com/sean-/flask-skeleton/blob/master/skeleton/modules/aaa/views.py#L13
Specifically, you would:
Bottom line, if you're using
Flask-WTF
, I'm not sure what your question is. If you aren't usingFlask-WTF
, useFlask-WTF
.如果是 Flask-WTF,你可以像
Thant 那样写,就可以了!
In case of Flask-WTF, you can write like
Thant will work!