2012-01-10 54 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,但我认为它需要是装饰者的参数,而不是处理器本身。