def create_operation(operation_key, handler_classes, resource_oql, modifier_id): if type(handler_classes) == str: handler_classes = [handler_classes] query = Operation.all() for handler_class in handler_classes: query.filter("handler_classes like ", "%%%s%%" % handler_class) if query.count() > 0: raise CoreError("One handler only can have one corresponding operation. The handler %s is corresponding to multiple operations." % handler_class) query = Operation.all() query.filter("operation_key =", operation_key) operation = Operation(operation_key=operation_key) operation.handler_classes = ",".join(handler_classes) operation.resource_oql = resource_oql operation.create(modifier_id) return operation