On Feb 13, 2014, at 11:53 AM, Michael Hipp <[email protected]> wrote:
> I'm trying to do something like this:
>
> class Animal(Base):
> __tablename__ = 'animals'
> id_ = Column(Integer, primary_key=True)
>
> sire_id = Column(Integer, ForeignKey('animals.id_'))
> dam_id = Column(Integer, ForeignKey('animals.id_'))
>
> sire = relationship('Animal', foreign_keys=[sire_id])
> dam = relationship('Animal', foreign_keys=[dam_id])
> children = relationship('Animal', foreign_keys=[sire_id, dam_id])
>
> It gives:
>
> sqlalchemy.exc.AmbiguousForeignKeysError: Could not determine join condition
> between parent/child tables on relationship Animal.first_owner - there are
> multiple foreign key paths linking the tables. Specify the 'foreign_keys'
> argument, providing a list of those columns which should be counted as
> containing a foreign key reference to the parent table.
>
> I've spent lots of time here, but I'm just not seeing the answer for this
> father-mother-children relationship.
> http://docs.sqlalchemy.org/en/rel_0_9/orm/relationships.html
I don’t see a “first_owner” relationship defined above, so the above example is
not complete.
The approach using “foreign_keys” is the correct approach to resolving
ambiguity in join conditions, however.
If the documented approach is not working you’d need to provide a succinct
self-contained example I can run.
signature.asc
Description: Message signed with OpenPGP using GPGMail
