Python 在Django中注册多个信号
我试图在一个模型上注册多个信号。似乎当我注册一个附加信号时,它会删除先前的信号Python 在Django中注册多个信号,python,django,signals,Python,Django,Signals,我试图在一个模型上注册多个信号。似乎当我注册一个附加信号时,它会删除先前的信号 from django.dispatch import receiver from django.db.models.signals import post_save,post_delete from my.app.models import Resource @receiver(post_save,sender=Resource) def ResourceSaved(sender,**kwargs):
from django.dispatch import receiver
from django.db.models.signals import post_save,post_delete
from my.app.models import Resource
@receiver(post_save,sender=Resource)
def ResourceSaved(sender,**kwargs):
print "Saved"
@receiver(post_delete,sender=Resource)
def ResourceSaved(sender,**kwargs):
print "Deleted"
我已经查看了文档,但我一直在寻找如何在类格式中创建自定义信号的详细信息。不是如何以类格式注册
我可以想象我可以做这样的事情:
@reciver(sender=Resource)
class SignalAnsweringMachine(object):
def post_delete(self,**kwargs):
print "delete"
def post_save(self,**kwargs):
print "save"
提前感谢您的帮助。您(可能是无意中)正在重新定义ResourceSaved。请尝试以下方法:
@receiver(post_save,sender=Resource)
def ResourceSaved(sender,**kwargs):
print "Saved"
@receiver(post_delete,sender=Resource)
def ResourceDeleted(sender,**kwargs):
print "Deleted"
我使用这个简短的表单来注册两个或多个处理程序 在我的例子中,我清除了缓存的类别列表
from django.dispatch import receiver
from django.db.models.signals import post_save, post_delete
from ..models import Category
all_categories = []
# Post save handler for Category model to clear "all_categores" variable
@receiver(post_save, sender=Category)
@receiver(post_delete, sender=Category)
def post_save_category(sender, **kwargs):
# clean cached categories
global all_categories
all_categories = []
现在,您可以在信号接收器中使用以下语法:
@receiver([post\u save,post\u delete],sender=Resource)
def资源已保存(发送方,**kwargs):
通过