title: Getting a parents children through a backref attribute via sqlalchemy relationship causes unnecessary flush
body: <p>I have a sqlalchemy relationship like this (trimmed for simplicity):</p>
  
  <pre><code>class Parent(Base):
    __tablename__ = 'Parent'
    name = Column(String, nullable=False)
    def __init__(self, name)
      self.name = name
  
  class Child(Base):
    __tablename__ = 'Child'
      name = Column(String, nullable=False)
      parent = relationship(Parent, backref=backref('children')
    def __init__(self, name, parent)
      self.name = name
      self.parent = parent
  </code></pre>
  
  <p>While working while my objects i do:</p>
  
  <pre><code>parent = Parent("my parent")
  db_session.add(parent) # must be done for other reasons not relevant to the issue.
  child = Child("my child", parent)
  </code></pre>
  
  <p>So far so good.
  But prior to committing when I do the following I get a DB flush:</p>
  
  <pre><code>children = parent.children # using the backref causes a flush
  </code></pre>
  
  <p>Can this be avoided by changing how I define the backref/relationship?</p>