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

Reply via email to