我在用户注册时发送了2个信号,socialauth_registered和post_save。我希望socialauth_registered在post_save之前,因为它会影响post_save触发的功能。
这可能吗? (如果是,怎么办?!)
我不确定确切相关的内容,但是我知道:
from django.contrib.auth.models import User
from social_auth.signals import socialauth_registered, pre_update
from django.db.models.signals import post_save
<ALL OF MY MODELS>
def create_user_profile(sender, instance, created, **kwargs):
do some stuff
def create_social_profile(sender, user, response, details, **kwargs):
do other stuff
socialauth_registered.connect(create_social_profile, sender=None)
post_save.connect(create_user_profile, sender=User)
最佳答案
我不是很积极,但是我会怀疑。 Kinda更重要的是,信号背后的想法是它们应该是原子的。信号处理程序应响应该信号,而不关心其他信号。通常,依靠两个不相关信号的顺序(显然,您可以依靠pre_save和post_save的顺序)通常是不安全的。因此,即使我对您的问题没有一个明确的答案,我也会提供建议,您应该仔细考虑一下设计。
关于django - 可以更改Django信号的顺序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017567/