From c3a3ead8520bbeec3c34258739ffe311a11734e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Tue, 2 Dec 2025 05:56:49 +0300 Subject: [PATCH] add from_data() classmethod to Model --- app/db.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/db.py b/app/db.py index eb6b980..a9a30b5 100644 --- a/app/db.py +++ b/app/db.py @@ -189,6 +189,13 @@ class Model: raise AttributeError(f"No column '{key}'") + @classmethod + def from_data(cls, data): + instance = cls(cls.table) + instance._data = dict(data) + return instance + + @classmethod def find(cls, condition): row = db.QueryBuilder(cls.table)\ @@ -196,9 +203,7 @@ class Model: .first() if not row: return None - instance = cls(cls.table) - instance._data = dict(row) - return instance + return cls.from_data(row) @classmethod @@ -207,11 +212,7 @@ class Model: .where(condition, operator)\ .all() res = [] - for row in rows: - instance = cls(cls.table) - instance._data = dict(row) - res.append(instance) - return res + return [cls.from_data(row) for row in rows] @classmethod @@ -223,9 +224,7 @@ class Model: row = db.insert(cls.table, columns, *values.values()) if row: - instance = cls(cls.table) - instance._data = row - return instance + return cls.from_data(row) return None @@ -243,7 +242,8 @@ class Model: def select(cls, sel = "*"): qb = db.QueryBuilder(cls.table).select(sel) result = qb.all() - return result if result else [] + # return result if result else [] + return [cls.from_data(data) for data in (result if result else [])] def update(self, data):