Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 即使在使用调度uid时,一次保存也会收到两次Post_保存_Django_Django Admin_Django Signals - Fatal编程技术网

Django 即使在使用调度uid时,一次保存也会收到两次Post_保存

Django 即使在使用调度uid时,一次保存也会收到两次Post_保存,django,django-admin,django-signals,Django,Django Admin,Django Signals,我的模型保存在各个文件中: models \ |__init__.py |event.py |a_thing.py |... 在\uuuu init\uuuuu.py中,我导入每个模型,然后设置信号处理 对于事件模型,我需要一些post\u save处理 这是\uuuu init\uuuu.py的截断版本: from django.db.models.signals import post_save from django.dispatch import receiver from

我的模型保存在各个文件中:

models
\ 
 |__init__.py
 |event.py
 |a_thing.py
 |...
\uuuu init\uuuuu.py
中,我导入每个模型,然后设置信号处理

对于
事件
模型,我需要一些
post\u save
处理

这是
\uuuu init\uuuu.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\u save
中的消息会打印一次,但每当我使用管理界面时,它会打印两次。这可能是因为我也在
admin.py
中导入了模型


有没有一个解决方法,这样我就可以从管理界面保存事件对象,而不必触发两次
post\u save

我成功地解决了这个问题,我将信号处理移到了视图的
\u init\u.py
而不是模型的
\u init\u.py

这可能是Django/Python导入的愚蠢之处。你需要像你所拥有的那样,但是我认为它需要是装饰者的一个参数,而不是处理程序本身