Hi.
I'm trying to relate two tables with a one to many relationship (the
parent table has a composite primary key) but I'm getting a mapper
error. I found a recent message about this same problem but with
declarative base (which I don't use) and not sure why the suggestion
there didn't apply to my problem.
Find below the error and the table creation code.
TIA,
Mariano
Error:
ArgumentError: Could not locate any equated, locally mapped column pairs
for primaryjoin condition 'regevent.id =
regevent_who.regevent_id AND regevent.author =
regevent_who.regevent_author' on relationship RegEvent.who. For more
relaxed rules on join conditions, the relationship may be marked as
viewonly=True.
Code:
regevent = Table('regevent', metadata,
Column('id', Unicode(200), primary_key=True),
Column('author', Unicode(200), primary_key=True),
Column('since', DateTime),
Column('until', DateTime),
Column('title', Unicode(100)),
Column('content', Unicode(600)),
Column('status', Unicode(200)),
Column('published', DateTime),
useexisting=True)
Index('regevent_cal_ix', *(regevent.c.calname,))
class RegEvent(object):
pass
regevent_who = Table('regevent_who', metadata,
Column('id', Integer, primary_key=True,
autoincrement=True),
Column('regevent_id', Unicode(200)),
Column('regevent_author', Unicode(200)),
Column('email', Unicode(200)),
Column('status', Unicode(200)),
Column('role', Unicode(200)),
ForeignKeyConstraint(("regevent_id", "regevent_author"),
("regevent.id", "regevent.author"),
"regevent_fk"),
useexisting=True)
Index("regevent_who_fk_ix", *(regevent_who.c.regevent_id,
regevent_who.c.regevent_author))
class RegEventWho(object):
pass
mapper(RegEvent, regevent_who, properties={
'who': relationship(RegEventWho,
primaryjoin=and_(
regevent.c.id==regevent_who.c.regevent_id,
regevent.c.author==regevent_who.c.regevent_author))
})
mapper(RegEventWho, regevent_who)
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.