2012-01-10 48 views
5

即使我有我的個人檔案型號:Post_save兩次接收到一個保存使用dispatch_uid

models 
\ 
|__init__.py 
|event.py 
|a_thing.py 
|... 

__init__.py我導入每個模型之後,我設置的信號處理。

對於Event模型,我需要一些post_save處理。

這是__init__.py截短版本:

from django.db.models.signals import post_save 
from django.dispatch import receiver 

from core.models.event import Event 

# Event 
@receiver(post_save, sender = Event) 
def event_post_save(sender, dispatch_uid = 'nope', **kwargs): 
    print kwargs.get('created') 
    print '------' 

每當我通過打印一次在post_save消息控制檯保存Event但每當我使用管理界面它就會打印兩次。這可能是因爲我在admin.py中也導入了模型。

是否有解決方法,以便我可以從管理界面保存Event對象,而不需要post_save兩次觸發?

回答

0

我設法解決它在我的移動處理的意見__init__.py替代機型__init__.py

4

這可能是從Django的/ Python的進口愚蠢的信號。你需要像你一樣需要dispatch_uid,但我認爲它需要是裝飾者的參數,而不是處理器本身。