Python 正在尝试编辑条目,但数据库不更新
我正在尝试更新数据库中的记录。表单呈现良好,并从views.py接收输入。提交后,重定向工作,但数据库不会使用表单数据更新。我错过了什么 model.py views.pyPython 正在尝试编辑条目,但数据库不更新,python,flask,flask-sqlalchemy,flask-wtforms,Python,Flask,Flask Sqlalchemy,Flask Wtforms,我正在尝试更新数据库中的记录。表单呈现良好,并从views.py接收输入。提交后,重定向工作,但数据库不会使用表单数据更新。我错过了什么 model.py views.py 您正在删除更新,然后再更新。它实际上更新了数据库,但是form.party\u name.data=party.party\u name已经覆盖了您的新数据。您是否用其他方法或函数提交这些更新?@IronFist这在flask中通常不需要,但即使我添加了DB.session.commit,它也不会将值存储在数据库中。是的,谢
您正在删除更新,然后再更新。它实际上更新了数据库,但是form.party\u name.data=party.party\u name已经覆盖了您的新数据。您是否用其他方法或函数提交这些更新?@IronFist这在flask中通常不需要,但即使我添加了DB.session.commit,它也不会将值存储在数据库中。是的,谢谢,这很有效!我将表单.party\u name.data=party.party\u name移动到if循环之后,问题就解决了
class Party(db.Model):
id = db.Column(db.Integer, primary_key=True)
party_name = db.Column(db.String(64))
@main.route('/edit-party/<int:id>', methods=['GET', 'POST'])
def edit_party(id):
party = Party.query.filter_by(id=id).first_or_404()
form = PartyForm()
form.party_name.data = party.party_name
if form.validate_on_submit():
party.party_name = form.party_name.data
db.session.add(party)
return redirect('parties')
return render_template('edit.html', form=form)