Hi list! I am facing a little problem whose I'm sure has a very simple solution, but I haven't been able to find it (the solution, I mean)...
I would like to be able to pass the fields (relationships) I want to pre-load as a parameter. Let's say I have a couple of classes: ------------------------------------------------- class ElementsGroup(declarativeBase): """Represents a group of elements""" __tablename__ = "elements_groups" _id = Column("id", Integer, primary_key=True) elements = relationship("Element" ... , collection_class=set ) elementGroups = relationship("ElementGroup", ... , collection_class=set) ------------------------------------------------- And then the "Element" class: ------------------------------------------------- class Element(declarativeBase): __tablename__ = "elements" _id = Column("id", Integer, primary_key=True) otherThings = relationship("Things", ... , collection_class=set) ------------------------------------------------- I would like to create a method to load objects of "ElementsGroups" that would accept a parameter containing which relationships have to be pre-loaded with a joinedload. Something like: ------------------------------------------------- class ElementsGroupManager(object): @staticmethod def getAll(relationshipsToPreLoad=list()): retval = list try: if (relationshipsToPreLoad): retval = Database.session.query(ElementsGroup.ElementsGroup).options(joinedload_all(relationshipsToPreLoad)).all() else: retval = Database.session.query(ElementsGroup.ElementsGroup).all() finally: Database.session.close() return retval ------------------------------------------------- And in relationshipsToPreload I can say, for instance: ["elements", "elements.otherThings"] (and would preload ElementsGroup.elements and the "otherThings" field of each "element" object in the ElementsGroup.elements list/relationship) or ["elementGroups"] which would just pre-load ElementsGroups.elementGroups (and not the ElementsGroups.elements) I'm sure it's very easy, but I haven't been able to do it... If I try to pass relationshipsToPreLoad=['elements', 'elementGroups'] I get something like: > Mapper 'Mapper|Element|elements' has no property 'elementGroups' It looks like it's trying to load (correctly) ElementsGroups.elements but then it's trying to load ElementsGroups.elements.elementGroups (which is not what I want... I want to load ElementsGroups.elementGroups) Thanks in advance! -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.