I added that in because without it I get: TypeError: Incompatible collection type: User is not list-like
On Tue, Feb 22, 2011 at 6:47 PM, Michael Bayer <mike...@zzzcomputing.com>wrote: > > On Feb 22, 2011, at 9:03 PM, Ryan McKillen wrote: > > Mike, thanks a lot. Big help. I'm almost there. > > This seems to do the trick: > > usersid = Column(Integer, primary_key=True, key='id') > inviter_id = Column(Integer, ForeignKey('users.id')) > > inviter = relationship('User', > uselist = False, > backref = backref('invitee', remote_side=usersid, uselist=True), > ) > > When there are two users, one being the inviter (parent) and the other > being the invitee (child), it works like a charm: > > self.assertEqual(invitee1.inviter.id, inviter.id) > self.assertEqual(inviter.invitee[0].id, invitee1.id) > > But add a third user, one being the inviter and two being the invitees, > invitee1.inviter is None. > > > probably because of that uselist=False, which makes it into a one-to-one. > Adjacency list is a standard single foreign key relationship - one-to-many > on one side, many-to-one on the other. > > There's an illustration of exactly how the data resides in the table: > > > http://www.sqlalchemy.org/docs/orm/relationships.html#adjacency-list-relationships > > > > > Any ideas for me? > > > On Tue, Feb 22, 2011 at 7:54 AM, Michael Bayer > <mike...@zzzcomputing.com>wrote: > >> >> On Feb 20, 2011, at 10:12 PM, Ryan wrote: >> >> I'm attempting a self-referential mapping on a Client object that includes >> these two columns: >> >> id = Column(Integer, primary_key=True) >> inviter_id = Column(Integer, ForeignKey('users.id'), nullable=True) >> >> >> Started here with no luck: >> >> inviter = relationship('Client', primaryjoin='Client.id == >> Client.inviter_id', uselist=False) >> >> >> Then read about self-referential mapping in the docs and tried with no >> luck: >> >> inviter = relationship('Client', remote_side='Client.id', uselist=False) >> >> >> And this with an error: >> >> relationship('Client', remote_side=[Client.id], uselist=False) >> >> >> Would be a great help to see how this is done in a declarative style. >> Thanks! >> >> >> >> the last example in the section >> http://www.sqlalchemy.org/docs/orm/relationships.html#adjacency-list-relationshipsillustrates >> a declarative self-referential relationship. Note that the "id" >> Column object can be referenced directly when you're inside the class >> declaration itself. >> >> >> >> >> -- >> 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. >> >> >> >> -- >> 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. >> > > > -- > 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. > > > -- > 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. > -- 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.