From 599fd3bf207a50dfcf61cf08ad0e743bc7aa4d10 Mon Sep 17 00:00:00 2001 From: piyush-jaiswal Date: Mon, 13 Oct 2025 20:47:27 +0530 Subject: [PATCH] prevent premature query with no_autoflush to catch name exception --- app/routes/category.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/routes/category.py b/app/routes/category.py index d684825..965037f 100644 --- a/app/routes/category.py +++ b/app/routes/category.py @@ -97,12 +97,14 @@ def put(self, data, id): if name := data.get("name"): category.name = name - if sc_ids := data.get("subcategories"): - subcategories = Subcategory.query.filter(Subcategory.id.in_(sc_ids)).all() - if len(subcategories) != len(sc_ids): - abort(422, message="One or more subcategories not present") - - category.subcategories.extend(subcategories) + with db.session.no_autoflush: + if sc_ids := data.get("subcategories"): + subcategories = Subcategory.query.filter( + Subcategory.id.in_(sc_ids) + ).all() + if len(subcategories) != len(sc_ids): + abort(422, message="One or more subcategories not present") + category.subcategories.extend(subcategories) try: db.session.commit()