即使使用dispatch_uid,Post_save也会收到两次一次保存

Vir*_*liu 5 django django-signals django-admin

我在单个文件中有我的模型:

models
\ 
 |__init__.py
 |event.py
 |a_thing.py
 |...
Run Code Online (Sandbox Code Playgroud)

__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 '------'
Run Code Online (Sandbox Code Playgroud)

每当我Event通过控制台保存时,post_save打印的信息就会打印一次,但每当我使用管理界面时,它都会被打印两次.这可能是因为我admin.py也在里面导入模型.

有没有解决方法,以便我可以从管理界面保存事件对象,而无需post_save两次触发?

Vir*_*liu 0

我设法通过将信号处理移动到视图__init__.py而不是模型来修复它__init__.py