2012-09-16 4 views
10

Sto usando una beuta e un'estensione sqlalchemy. Inoltre sto usando il modo dichiarativo per scrivere i miei modelli come descritto nella documentazione dell'estensione.sqlalchemy beuta dopo l'inserimento/l'aggiornamento/l'eliminazione

Per uno dei miei modelli, ho un codice che devo eseguire dopo che una nuova riga è stata inserita, aggiornata o cancellata. Mi stavo chiedendo come farlo? Idealmente vorrei solo aggiungere funzioni al modello ..

Grazie

risposta

16

sguardo al SQLAlchemy di Mapper Events. È possibile associare una funzione di richiamata agli eventi after_insert, after_update e after_delete.

Esempio:

from sqlalchemy import event 

def after_insert_listener(mapper, connection, target): 
    # 'target' is the inserted object 
    print(target.id_user) 

event.listen(User, 'after_insert', after_insert_listener)