home · contact · privacy
Always check if item is saved before removal attempt.
[plomtask] / plomtask / db.py
index 3a661d37758f579a9cac09dc90b86f07f0572e04..0509492473c44730ea70fa3e793775cd892e2866 100644 (file)
@@ -261,6 +261,7 @@ class BaseModel(Generic[BaseModelId]):
 
     def remove(self, db_conn: DatabaseConnection) -> None:
         """Remove from DB and cache."""
-        assert isinstance(self.id_, int | str)
+        if self.id_ is None or self.__class__.get_cached(self.id_) is None:
+            raise HandledException('cannot remove unsaved item')
         self.uncache()
         db_conn.delete_where(self.table_name, 'id', self.id_)