python - How to keep track of Form field changes in Flask-WTF? -
i have model members field shown below:
class team(db.model): --- fields --- members = listproperty(db.key) # using app engine datastore backend. i using flask-wtfforms create form using model. while creating new team, user select members in form , save it. user can edit team form , make changes members field(can add or remove members). wanted check how many members added or deleted comparing previous data stored in members field. same applies other fields also.
i used sessions achieve this:
def edit_team(key):
k = db.key(key) team = db.get(k) form = teamform(obj = team) if not form.is_submitted(): # indicates request session[str(g.user.user_id() + 'prev_members'] = form.members.data if form.validate_on_submit(): form.populate_obj(project) # use session data new form.members.data further processing. is right way handle scenario? thank help..
the problem code
team = db.get(k) form = teamform(obj = team) if request get, object's data has loaded model. however, if request post (or put, patch) means need read request body form proper updates on model. seems you're using k variable key indicator of model.
k = db.key(key) team = db.get(k) if request.method == "get": # create form model form = teamform(obj = team) elif request.method == "post": # update model form form = teamform() #flask-wtf automatically reads request object # validate, update, delete, ...
Comments
Post a Comment