エラーは発生していません。レコードは更新されていません。私は私が唯一選ばれた少数のフィールドを更新していますので、(私はpopulate_obj()
を使用することはできませんが、db.session.commit()
た後、それはまだテーブルを更新していないユーザーレコードを編集し、個々のフィールドを保存しています。SQLAlchemyはレコードを更新しません
@app.route("/user/edit/<int:user_id>", methods=["GET", "POST"])
@login_required
def edit_user(user_id):
user = User.query.get_or_404(user_id)
form = EditUserForm()
form.username.data = user.username
form.email.data = user.email
form.first_name.data = user.first_name
form.last_name.data = user.last_name
if form.validate_on_submit():
user.email = form.email.data
user.first_name = form.first_name.data
user.last_name = form.last_name.data
db.session.commit()
flash("Updated user '{}'".format(user.username))
return redirect(url_for("user"))
return render_template("user_edit_form.html", form=form, action="Edit", user_id=user_id)
それも点滅リダイレクトそれは、レコードが、何も更新されたメッセージは、sqlachemyでmysqlデータベースに書き込まれます。
がcommit()
後db.session.flush()
は違いはありません追加、また前(db.session.add(user)
)をコミットするセッションにユーザーを追加することはない。
方法D oレコードを更新しますか?
OKです。リクエストメソッドがGETであった場合はチェックを追加し、最初の場合はフィールドにデータを取り込みます。それから、POSTメソッドでのみ検証します。大体今はうまく動いているようだ。ありがとう! – Dan