Tengo una plantilla que permite al usuario editar su información de usuario.Usando el método populate_obj() de WTForms con Flask micro framework
<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>
También tengo una función de vista para manejar tales ediciones por el usuario. La base de datos que estoy usando actualmente es MongoDB con el módulo MongoKit. Solo he podido hacer esto hasta ahora en la función de vista, pero sin suerte.
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)
Estoy pasando por populate_obj(obj) para este propósito. No pude encontrar mucha ayuda en este asunto. ¿Qué debo hacer para que populate_obj()
funcione?
Necesita describir qué error está recibiendo, o cómo los resultados que obtiene difieren de sus expectativas. –
Tenía la esperanza de que si alguien me indicara qué debo guardar donde he escrito ** ¿qué debería colocar aquí? **. También sobre el objeto de usuario obtenido de esa manera se permite pasar o no. – consumer