From 084059449ff0adee57cc458b0b1f4f8c704890b2 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Fri, 2 May 2025 18:38:59 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20style:=20update=20profile=20temp?= =?UTF-8?q?late=20and=20improve=20app.py=20functionality?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/app.cpython-313.pyc | Bin 74046 -> 80233 bytes app.py | 3 ++- templates/profile.html | 33 ++++++++++++++++++++++++++------ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index 1685baab68664d95703bfba6f6d971db62d1fb7b..0dc430f159bfa6837d9a5ac2cc5793f0204162de 100644 GIT binary patch delta 19298 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 diff --git a/app.py b/app.py index 1786f63..f4c2aa6 100644 --- a/app.py +++ b/app.py @@ -278,7 +278,8 @@ def admin_required(f): @login_manager.user_loader def load_user(id): - return User.query.get(int(id)) + # Verwende session.get() anstelle von query.get() für SQLAlchemy 2.0 Kompatibilität + return db.session.get(User, int(id)) # Routes for authentication @app.route('/login', methods=['GET', 'POST']) diff --git a/templates/profile.html b/templates/profile.html index a797b24..e464026 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -613,16 +613,37 @@