def node_cascade_delete(mapper, connection, target): node_id = target.id for fact in Facts.query.filter_by(node_id=node_id): session.delete(fact) for attr in Attrs.query.filter_by(node_id=node_id): session.delete(attr)
def delete(self, id): id = int(id) r = self.model.query.filter_by(id=id).first() # We need generate an object hash to pass to the backend notification try: session.delete(r) session.commit() return True except sqlalchemy.orm.exc.UnmappedInstanceError as e: session.rollback() msg = "%s id does not exist" % (self.name.title()) raise exceptions.IdNotFound(message=msg) except sqlalchemy.exc.InvalidRequestError as e: session.rollback() msg = e.msg raise RuntimeError(msg)