On Thu, 31 Jul 2014, Jonathan Vanasco wrote:

yes.  `backref` just lets you consolidate defining a relationship in a
single place.

`relationship` lets you specify the relationship from A to B

`backref` is a kwarg to `relationship` that lets you specify the inverse (
B to A )

  class TableA():
       b = relationship("TableB", backref="a")

  class TableB():
      pass

is the same thing as saying:

  class TableA():
       b = relationship("TableB")

  class TableB():
       a = relationship("TableA")

`backref` can either be a `String` OR a `backref()` constructor -- which
lets you customized the join with the same conditions you can elect in the
`relationship` constructor

  class Foo():
       bar = relationship("Bar", lots_of_keywords_here=True,
backref=backref(the_same_keywords_work_here=True) )

Jonathan,

  That makes everything clear.

  My original confusion arose because I'm used to specifying many children
to one parent with the postgres syntax REFERENCES in the children's table;
that's the only relationships I've used (other than many-to-many in linking
tables). The abundance of options in SQLAlchemy threw me.

Much appreciated,

Rich

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