Could you show the whole model and table definition? I've lost track of exactly what you've written.
Thanks, Simon On Wed, Sep 24, 2014 at 11:15 AM, Mohammad Reza Kamalifard <mr.kamalif...@gmail.com> wrote: > thanks Mike > with new to_contacts relationship i have new error > ArgumentError: Could not locate any relevant foreign key columns for primary > join condition 'contact.id = :param_1' on relationship Contact.to_contacts. > Ensure that referencing columns are associated with a ForeignKey or > ForeignKeyConstraint, or are annotated in the join condition with the > foreign() annotation. > > On Wed, Sep 24, 2014 at 5:49 AM, Michael Bayer <mike...@zzzcomputing.com> > wrote: >> >> to_contacts = db.relationship('Contact', >> secondary='contactrelation', >> primaryjoin='id== ContactRelation.from_contact_id', >> secondaryjoin='id== ContactRelation.to_contact_id', >> >> or >> >> to_contacts = db.relationship('Contact', >> secondary=contactrelation, >> primaryjoin=id== contactrelation.c.from_contact_id, >> secondaryjoin=id== contactrelation.c.to_contact_id, >> >> see examples: >> >> >> http://docs.sqlalchemy.org/en/rel_0_9/orm/relationships.html#self-referential-many-to-many-relationship >> >> >> >> >> On Sep 23, 2014, at 5:26 PM, Mohammad Reza Kamalifard >> <mr.kamalif...@gmail.com> wrote: >> >> Using contactrelation.from_contact_id ? >> I have AttributeError: 'Table' object has no attribute 'from_contact_id' >> Error. >> >> On Tue, Sep 23, 2014 at 4:48 PM, Michael Bayer <mike...@zzzcomputing.com> >> wrote: >> > >> > table name, not class name, please see >> > http://docs.sqlalchemy.org/en/rel_0_9/orm/extensions/declarative.html#declarative-many-to-many >> > >> > >> > On Sep 23, 2014, at 8:33 AM, Mohammad Reza Kamalifard >> > <mr.kamalif...@gmail.com> wrote: >> > >> > In my application with SQLAlchemy i need to create many to many >> > relationship between two contact object also sotre data for each of >> > relatioship here is my Contact model >> > >> > class Contact(db.Model): >> > __tablename__ = 'contact' >> > id = db.Column(db.Integer, primary_key=True) >> > name = db.Column(db.Unicode(120), nullable=False, unique=False) >> > user_id = db.Column(db.Integer, db.ForeignKey('user.id')) >> > >> > to_contacts = db.relationship('Contact', >> > secondary='ContactRelation', >> > primaryjoin='id== >> > ContactRelation.from_contact_id', >> > secondaryjoin='id== >> > ContactRelation.to_contact_id', >> > >> > backref='from_contacts') >> > >> > >> > and my association class ContactRelation: >> > >> > class ContactRelation(db.Model): >> > __tablename__ = 'contactrelation' >> > id = db.Column(db.Integer, primary_key=True) >> > from_contact_id = db.Column(db.Integer, db.ForeignKey('contact.id')) >> > to_contact_id = db.Column(db.Integer, db.ForeignKey('contact.id')) >> > relation_type = db.Column(db.String(100), nullable=True) >> > >> > every thing seems good but i have error : >> > AttributeError: type object 'ContactRelation' has no attribute 'c' >> > >> > >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "sqlalchemy" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> > an email to sqlalchemy+unsubscr...@googlegroups.com. >> > To post to this group, send email to sqlalchemy@googlegroups.com. >> > Visit this group at http://groups.google.com/group/sqlalchemy. >> > For more options, visit https://groups.google.com/d/optout. >> > >> > >> > -- >> > You received this message because you are subscribed to a topic in the >> > Google Groups "sqlalchemy" group. >> > To unsubscribe from this topic, visit >> > https://groups.google.com/d/topic/sqlalchemy/OeLrx74p5vY/unsubscribe. >> > To unsubscribe from this group and all its topics, send an email to >> > sqlalchemy+unsubscr...@googlegroups.com. >> > To post to this group, send email to sqlalchemy@googlegroups.com. >> > Visit this group at http://groups.google.com/group/sqlalchemy. >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "sqlalchemy" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/sqlalchemy/OeLrx74p5vY/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> sqlalchemy+unsubscr...@googlegroups.com. >> To post to this group, send email to sqlalchemy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at http://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.