Thanks for this response. I do need all of the data available at once. Specifically, here is what I'm trying to do. I'm following this example right from the docs:
>>> from sqlalchemy import ForeignKey >>> from sqlalchemy.orm import relation, backref >>> class Address(Base): ... __tablename__ = 'addresses' ... id = Column(Integer, primary_key=True) ... email_address = Column(String, nullable=False) ... user_id = Column(Integer, ForeignKey('users.id')) ... ... user = relation(User, backref=backref('addresses', order_by=id)) ... ... def __init__(self, email_address): ... self.email_address = email_address ... ... def __repr__(self): ... return "<Address('%s')>" % self.email_address Just dealing with two foreign key tables for now, I have foreign keys into Members, and Gender in this MemberProfiles class. I inherit from the declarative_base, as shown: import sys import pprint from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import * sys.path.append('../config') import config from Members import * from Gender import * Base = declarative_base() class MemberProfile(Base): __tablename__ = 'member_profiles' memberID = Column(Integer, ForeignKey('members.memberID'), primary_key=True) SSN = Column(String) DOB = Column(Date) industryID = Column(Integer) primarysectorID = Column(Integer) address1 = Column(String) address2 = Column(String) city = Column(String) state = Column(String) zip = Column(String) howhearID = Column(Integer) affiliationID = Column(Integer) incomeID = Column(Integer) worksituationID = Column(Integer) currentinsuranceID = Column(Integer) genderID = Column(Integer,ForeignKey('member_gender.genderID')) referemail = Column(String) occupation = Column(String) phonehome = Column(String) phonework = Column(String) phonecell = Column(String) phonefax = Column(String) occupationID = Column(Integer) occupationother = Column(String) billing_address1 = Column(String) billing_address2 = Column(String) billing_city = Column(String) billing_state = Column(String) billing_zip = Column(String) member = relation("Member",lazy=False,backref=backref ('members',order_by=memberID),cascade="all, delete") gender = relation("Gender",lazy=False,backref=backref ('member_profiles'),order_by=genderID) def __init__(self, memberID, ... def __repr__(self): return "<MemberProfile('%s','%s',... I try to run this in the unit test: if __name__ == "__main__": member_profile_table = MemberProfile.__table__ metdata = Base.metadata engine = create_engine(config.db_conn) Session = sessionmaker(bind=engine) session = Session() memberProfile = session.query(MemberProfile).filter_by (memberID=81017).first() print "\nOriginal record:" print memberProfile.__dict__ memberProfile.phonework="1111111111" memberProfile.question="who?" session.commit() I get this error: debian-etch:/var/www/ReST/models# python MemberProfiles.py Traceback (most recent call last): File "MemberProfiles.py", line 108, in ? memberProfile = session.query(MemberProfile).filter_by (memberID=81017).first() File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/session.py", line 908, in query return self._query_cls(entities, self, **kwargs) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/query.py", line 95, in __init__ self.__setup_aliasizers(self._entities) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/query.py", line 109, in __setup_aliasizers mapper, selectable, is_aliased_class = _entity_info(entity) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/util.py", line 466, in _entity_info mapper = class_mapper(entity, compile) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/util.py", line 543, in class_mapper mapper = mapper.compile() File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/mapper.py", line 679, in compile mapper._post_configure_properties() File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/mapper.py", line 701, in _post_configure_properties prop.init(key, self) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/interfaces.py", line 404, in init self.do_init() File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/properties.py", line 574, in do_init self._determine_targets() File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/orm/properties.py", line 588, in _determine_targets self.mapper = mapper.class_mapper(self.argument(), compile=False) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/ sqlalchemy/ext/declarative.py", line 387, in return_cls raise exceptions.InvalidRequestError( sqlalchemy.exc.InvalidRequestError: When compiling mapper Mapper| MemberProfile|member_profiles, expression 'Member' failed to locate a name ("name 'Member' is not defined"). If this is a class name, consider adding this relation() to the <class '__main__.MemberProfile'> class after both dependent classes have been defined. This same example works if I inherit from my Member class, but I don't want to do this, since I have to also join Gender, and 40 something other tables to this class. What am I missing to make this work like the example shown? Thank you immensely, Gloria --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@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 -~----------~----~----~----~------~----~------~--~---