【问题标题】:Trying to edit an entry, but DB does not update尝试编辑条目,但数据库未更新
【发布时间】:2017-05-29 07:57:31
【问题描述】:

我正在尝试更新我的数据库中的记录。表单呈现良好并接收来自views.py 的输入。提交后重定向工作,但数据库没有更新表单数据。我错过了什么?

model.py

class Party(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    party_name = db.Column(db.String(64))

views.py

@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)

【问题讨论】:

  • 您是否在其他方法或函数中提交这些更新?
  • @IronFist 这在flask中通常不需要,但是即使我添加了db.session.commit(),它也不会将值存储在db中。

标签: python flask flask-sqlalchemy flask-wtforms


【解决方案1】:

您在更新之前清除了您的更新。它实际上更新了数据库,但form.party_name.data = party.party_name 已经覆盖了您的新数据。

【讨论】:

  • 是的,谢谢,成功了!我把form.party_name.data = party.party_name移到了if循环之后,问题就解决了
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多