title: Flask Restless AttributeError: 'NoneType' object has no attribute '_sa_instance_state'
body: <p>I am currently using <code>Flask</code>, <code>Flask-SQLAlchemy</code> &amp; <code>Flask-Restless</code> to provide REST routes for a small private AngularJS application.  Thus far, I have been able to make/use routes effectively that did not include any relationships.  </p>
  
  <p>However, I have a few tables that must have relationships with other tables, which is where my issue is. I get the following Flask error when  making a POST to the Flask-Restless Route:</p>
  
  <pre><code>  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
      return self.wsgi_app(environ, start_response)
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
      response = self.make_response(self.handle_exception(e))
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
      reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
      response = self.full_dispatch_request()
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
      rv = self.handle_user_exception(e)
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
      reraise(exc_type, exc_value, tb)
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
      rv = self.dispatch_request()
    File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
      return self.view_functions[rule.endpoint](**req.view_args)
    File "/usr/local/lib/python2.7/dist-packages/flask_restless/views.py", line 145, in decorator
      return func(*args, **kw)
    File "/usr/local/lib/python2.7/dist-packages/mimerender.py", line 227, in wrapper
      result = target(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/flask/views.py", line 84, in view
      return self.dispatch_request(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/flask/views.py", line 149, in dispatch_request
      return meth(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/flask_restless/views.py", line 1263, in post
      self.session.add(instance)
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 150, in do
      return getattr(self.registry(), name)(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1492, in add
      self._save_or_update_state(state)
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1510, in _save_or_update_state
      halt_on=self._contains_state):
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/mapper.py", line 2457, in cascade_iterator
      visited_states, halt_on))
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/relationships.py", line 1449, in cascade_iterator
      get_all_pending(state, dict_)
    File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/dynamic.py", line 185, in get_all_pending
      c.all_items
  AttributeError: 'NoneType' object has no attribute '_sa_instance_state'
  </code></pre>
  
  <p>I think this error has something to do with my model. Here are my current model definitions:</p>
  
  <pre><code>surveyOptions = db.Table('survey_options',
      db.Column('survey_id', db.Integer, db.ForeignKey('survey.id')),
      db.Column('option_id', db.Integer, db.ForeignKey('option.id')),
      db.Column('count', db.Integer)                      
      )
  
  class Survey(db.Model):
      id = db.Column(db.Integer, primary_key=True)
      category = db.Column(db.String(50))
      question = db.Column(db.Text)
      startDate = db.Column(db.DateTime)
      endDate = db.Column(db.DateTime)
      options = db.relationship('Option', secondary=surveyOptions,
          backref=db.backref('surveys', lazy='dynamic'), lazy='dynamic')
  
  def __init__(self, category, question, startDate=None, endDate=None, options=None):
      self.category = category
      self.question = question
      if startDate == None:
          self.startDate = datetime.utcnow()
      if endDate == None:
          self.endDate = datetime.utcnow()
      self.options.append(options)
  
  class Option(db.Model):
      id = db.Column(db.Integer, primary_key=True)
      text = db.Column(db.Text)
  
      def __init__(self, text):
          self.text = text
  
  ...
  
  manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
  manager.create_api(Survey, methods=['GET','POST','PUT','DELETE'], include_columns=['id','category', 'question', 'startDate','endDate', '_options.id','options.text']);
  </code></pre>
  
  <p>I would really appreciate some help in isolating the source of this error. I am not sure where to go next with troubleshooting this error.</p>
  
  <p>I can provide more code samples upon request for both the front-end and back-end if needed.</p>