title: SQLALCHEMY: how to use @events.listens_for in flask_sqlalchemy-SQLalchemy
body: <p>i need some help in automating some tasks in sqlalchemy. 
  when a new user registers on my website i need 5 personnel to be added. </p>
  
  <p>i would like to use the sqlalchemy <code>events</code> because if i can get it to work it will come in handy later for other automations.</p>
  
  <p>i am following Mr Miguel Grinberg's Tutorial on how to make a flask
  application <strong>and to define my models (db.Model not Base)</strong>.</p>
  
  <p>i read that to use <code>@event.listens_for(User.__table__, "after_insert")</code> i have to use a declarative base. is there a way around this? My model structure involves close to 15 tables!</p>
  
  <pre><code>  class User(db.Model):
          __tablename__ = "user"
          id = db.Column(db.Integer, primary_key=True, autoincrement=True)
          email = db.Column(db.String(64), unique=True, index=True)
          username = db.Column(db.String(64), unique=True, index=True)
          password_hash = db.Column(db.String(128))
          store = db.relationship('Store', uselist=False, backref="user")
  
  
  
  @event.listens_for(User.__table__, "after_insert")
  def add_personnel(*args, **kwargs):
      for i in range(5):
          db.session.add(Personnel,store_id = User.query.last().id)
      db.session.commit()
      return None
  
  class Personnel(db.Model):
      __tablename__ = "personnel"
      id = db.Column(db.Integer, primary_key=True)
      store_id = db.Column(db.Integer, db.ForeignKey('store.id'))
      first_name = db.Column(db.String(64))
      last_name = db.Column(db.String(64))
      username = db.Column(db.String(64))
      cell_phone = db.Column(db.Integer)
      pin_number = db.Column(db.Integer)
      email = db.Column(db.String(64))
      orders = db.relationship("Order", backref='personnel', lazy='dynamic')
  
  **TRACEBACK**
  
  
  
      Traceback (most recent 
      call last):
        File "manage.py", line 3, in &lt;module&gt;
          from app.models import User
        File "/home/#######/PycharmProjects/#######/app/models.py", line 62, in &lt;module&gt;
          @event.listens_for(User.__table__, "after_insert")
        File "/home/#######/PycharmProjects/#######//venv/local/lib/python2.7/site-packages/sqlalchemy/event/api.py", line 124, in decorate
          listen(target, identifier, fn, *args, **kw)
        File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/api.py", line 89, in listen
          _event_key(target, identifier, fn).listen(*args, **kw)
        File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/registry.py", line 194, in listen
          dispatch_collection = getattr(target.dispatch, identifier)
        File "/home/#######/PycharmProjects/#######/venv/local/lib/python2.7/site-packages/sqlalchemy/event/base.py", line 95, in __getattr__
          raise AttributeError(name)
      AttributeError: after_insert
  </code></pre>