def objectValues(self): '''values''' if self.item_class: query = self.saSession.query(self.item_class) query = query.with_polymorphic('*') items = query.all() results = [] for item in items: results.append(utils.wrapsetup(item, parent=self)) return results else: return []
def __getObjectFromSA__(self, path): #database access if self.item_class: key = IKeyIdSubobjectSupport(self).makeKeyFromId(path) query = self.saSession.query(self.item_class) query = query.with_polymorphic('*') # TODO subobject = query.get() maybe marginally # more efficient but does not work due to some # obscure sqlalchemy bug: when an object is in the session # and the scalar attributes are unloaded, the attribute # are not reloaded after a get... query = query.filter(self.item_class.key == key) subobject = query.first() if subobject is None: raise KeyError elif subobject is None: raise KeyError return utils.wrapsetup(subobject, parent=self)