2016-05-11 186 views
0

我想弄清楚SQLAlchemy如何處理事件註冊。我有一種情況,我想將所有事件監聽器保存在一個文件中,而不是保存在模型中(我想這樣做是爲了避免我的模型導入帶有業務邏輯的控制器)。但是,如果我嘗試做類似下面的一個單獨的文件中的代碼不會火:SQLAlchemy事件註冊

from sqlalchemy.event import listens_for 
from models import User 


@listens_for(User, 'before_update') 
def before_update_listener(mapper, connection, instance): 
    print "do something" 

這是有道理的,這個模塊是從來沒有進口,但後來我怎麼告訴SQLAlchemy的一些存在事件偵聽器listeners.py文件?

+1

只需導入文件? – univerio

回答

0

文件必須進口的,你可以這樣做以下:

# listeners.py 
from sqlalchemy.event import listens_for 
from models import User 


@listens_for(User, 'before_update') 
def before_update_listener(mapper, connection, instance): 
    print "do something" 

# __init__.py 
from . import events 
del events