I have this extremely efficient object oriented hierarchical construct (working parallel) under GAE:
class *my_object_Root*(BaseModel): *total_counter *= db.IntegerProperty() class *my_object*(db.Model): *name *= db.StringProperty() #That's it ! Super fast ! @classmethod def *get_profile*(self, name): if not name: return None root = my_object_Root.get_profile() #cache self._cache = get_cache("memcached://") skey = name key_cache = 'my_object' + skey + str(root.key()) profile = self._cache.get(key_cache) #cache if not profile: key = db.Key.from_path('my_object', skey, parent=root.key()) profile = db.get(key) # not found - create if not profile: root = my_object_Root.get_profile_del_cache() profile = my_object(key_name=skey, parent=root.key()) profile.put() return profile #cache self._cache.set(key_cache, profile, timeout=CACHE_TIMEOUT) #cache return profile *Usage:* my_object_name = "Test Name" my_name = models.my_object.get_profile(my_object_name) name = my_name.name *total_counter* is in the root: *my_object_Root* of the object *my_object. *We can have many children of *my_object *under *my_object_Root *and* *additional code is updating *total_counter* when I am adding another *my_object. *That way one very difficult to implement and slow operation - counting is done very efficiently on the fly and it works very quick. This and other construct are impossible to achieve the same efficiency under SQL so the only way I see to achieve this under web2py is web2py abstraction layer to have a way transparently to use GAE. Are there currently a way to achieve this? Thanks in advance,