def delete(self): model = request.environ["sqlalchemy.model"] db = request.environ["sqlalchemy.session"] result = {} for id in request.params.getall('id'): try: item = db.query(model.IncomeCategory).filter_by(uid=id).one() except InvalidRequestError: result[id] = { "deleted" : False, "message": Messages.elementNotFound(key=id) } continue if (db.query(model.BalanceChange).filter_by(income_category_uid=item.uid).count() > 0): result[item.uid] = { "deleted" : False, "message" : Messages.incomeCategoryIsInUse(id=item.uid) } else: try: db.delete(item) db.commit() result[item.uid] = { "deleted" : True, } except Exception, e: result[item.uid] = { "deleted" : False, "message" : Messages.failedToDelete(exception=e) }