found it out myself:
>     related_persons = orm.relation(tblPersonTable,
>         secondary=tblPersonCompanyTable, backref="company")
must be
>     related_persons = orm.relation(tblPersonTable,
>         secondary=tblPersonCompanyTable.__table__, backref="company")
>

have a good time
robert

robert rottermann schrieb:
> Hi there,
> I try to create a m:n relation. All tables should be reflected from an 
> existing db.
> For this I have the following construct:
> engine = EngineFactory(DSN, echo=False,
>     convert_unicode=True, encoding="latin1" )()
> Base = declarative_base(engine)
> Base.metadata.reflect()
> tables = Base.metadata.tables
> 
> class tblPersonCompanyTable(Base):
>     implements(interfaces.ItblPersonCompanyTable)
>     __table__ = tables['tblPersonCompany']
> 
> class tblPersonTable(Base):
>     __table__ = tables['tblPerson']
> 
> class tblCompanyTable(Base):
>     __table__ = tables['tblCompany']
> 
>     related_persons = orm.relation(tblPersonTable,
>         secondary=tblPersonCompanyTable, backref="company")
> 
> class tblFlagTable(Base):
>     __table__ = tables['tblFlag']
> 
> now when I create a tblFlagTable object (which is the first thing accessing 
> the
> db), I get an error:
> AttributeError: 'tblPersonCompanyTable' object has no attribute 'foreign_keys'
> 
> the MySQL-table assigned to 'tblPersonCompanyTable' does have foreign keys 
> assigned.
> 
> what am I doing wrongly? how can I fix this
> thanks
> robert
> 
> File "/home_2/zope/energiecluster/db/scripts/transfer/transfer.py", line 223, 
> in ?
>   main()
> File "/home_2/zope/energiecluster/db/scripts/transfer/transfer.py", line 173, 
> in
> main
>   fo = tblFlagTable()
> File "/home_2/zope/energiecluster/db/scripts/transfer/<string>", line 4, in 
> __init__
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/attributes.py",
> line 858, in initialize_instance
>   fn(self, instance, args, kwargs)
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/mapper.py",
> line 1726, in _event_on_init
>   instrumenting_mapper.compile()
> File
> "/usr/local/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/local/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/local/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/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py",
> line 575, in do_init
>   self._determine_joins()
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py",
> line 649, in _determine_joins
>   self.secondaryjoin = _search_for_join(self.mapper, self.secondary)
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/orm/properties.py",
> line 642, in _search_for_join
>   return join_condition(mapper.local_table, table)
> File
> "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/sqlalchemy/sql/util.py",
> line 82, in join_condition
>   for fk in b.foreign_keys:
> 
> > 
> 


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to