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_)