mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #9015 -- added a signal decorator for simplifying signal connections
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13773 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -6,4 +6,4 @@ See license.txt for original license.
|
||||
Heavily modified for Django's purposes.
|
||||
"""
|
||||
|
||||
from django.dispatch.dispatcher import Signal
|
||||
from django.dispatch.dispatcher import Signal, receiver
|
||||
@@ -235,3 +235,19 @@ class Signal(object):
|
||||
for idx, (r_key, _) in enumerate(self.receivers):
|
||||
if r_key == key:
|
||||
del self.receivers[idx]
|
||||
|
||||
|
||||
def receiver(signal, **kwargs):
|
||||
"""
|
||||
A decorator for connecting receivers to signals. Used by passing in the
|
||||
signal and keyword arguments to connect::
|
||||
|
||||
@receiver(post_save, sender=MyModel)
|
||||
def signal_receiver(sender, **kwargs):
|
||||
...
|
||||
|
||||
"""
|
||||
def _decorator(func):
|
||||
signal.connect(func, **kwargs)
|
||||
return func
|
||||
return _decorator
|
||||
|
||||
Reference in New Issue
Block a user