使用一个接收器合并多个后保存信号 [英] Consolidating multiple post_save signals with one receiver

查看:115
本文介绍了使用一个接收器合并多个后保存信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我阅读了Django源代码(1.5版),您现在可以将多个信号注册到接收器函数:

So I read the Django source code (post 1.5) that you can now register multiple multiple signals to a receiver function:

def receiver(signal, **kwargs):
    """
    A decorator for connecting receivers to signals. Used by passing in the
    signal (or list of signals) and keyword arguments to connect::

        @receiver(post_save, sender=MyModel)
        def signal_receiver(sender, **kwargs):
            ...

        @receiver([post_save, post_delete], sender=MyModel)
        def signals_receiver(sender, **kwargs):
            ...

    """
    ... implementation code...

但是,我想注册来自不同发件人的多个post_save信号。现在,我只是打电话给

However, I want to register multiple post_save signals from different senders to the same function. Right now, I just call

post_save.connect(fn_name, model_name)

对于我拥有的每种型号。有了新的Django 1.5 @receiver装饰器功能,还有更好的方法吗?

for each model that I have. Is there a better way to do this with the new Django 1.5 @receiver decorator capability?

推荐答案

您可以使用@receiver来使用它装饰器:

You can use that using @receiver decorator:

@receiver(post_save, sender=Model1)
@receiver(post_save, sender=Model2)
@receiver(post_save, sender=Model3)
def my_signal_handle(sender , **kwargs)
    # some code here

这篇关于使用一个接收器合并多个后保存信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆