Ich mache eine Webanwendung, bei der Benutzeraktionen einige Balkendiagramme beeinflussen können (siehe gif unten). Manchmal werden Änderungen nicht gespeichert. Wenn ich die Seite neu lade, werden die geänderten Balkendiagramme angezeigt (um anzuzeigen, dass die Aktion des Benutzers gespeichert wurde). Wenn ich die Seite erneut lade, werden manchmal die aktualisierten Balkendiagramme und die entsprechende Liste angezeigt. Andere Zeiten sind sie nicht.Flask-SQLAlchemy-Änderungen bleiben nicht erhalten
Hier ist der Code für die Ansicht:
@app.route('/')
def home():
'''homepage for application'''
# redirect users who go to home page but aren't logged in
if not current_user.is_authenticated:
return redirect(url_for("landing"))
# reset the session
db.session.flush()
# get most recent entered weight
try:
last_weight = WeightEntry.query.filter_by(user_id = current_user.user_id).order_by(WeightEntry.date)[-1]
except IndexError:
return error("No weight recorded. Please contact support.")
return render_template("home.html",
today= Today(current_user.user_id),
foods = [food for food in FoodEntry.query.filter_by(user_id=current_user.user_id).all() if food.is_today() == True],
options = sorted(Food.query.filter(Food.user_id==current_user.user_id).all(), key=lambda x: x.name),
last_weight = last_weight)
ich die db.session.flush()
in einem Versuch hinzugefügt, um das Problem zu lösen, aber das hat nicht funktioniert.
Die Änderungen (angemeldet Lebensmittel) werden hier gespeichert:
@app.route("/log_food", methods=["POST", "GET"])
@login_required
def log_food():
# add foods given by the user
if request.method == "POST":
for food in request.form.getlist("logged_food"):
try:
added_food = Food.query.filter_by(user_id=current_user.user_id, name=food).first()
x = FoodEntry(
food_id = added_food.food_id,
user_id = current_user.user_id)
db.session.add(x)
db.session.commit()
except:
return error("Unable to log food.")
return redirect(url_for("home"))
ich jede Hilfe dankbar würde ich bekommen kann.
Danke!
den Code hinzufügen, wo Sie die Änderungen speichern bitte, und die Motorkonfiguration – Busturdust