diff options
| author | Brian Rosner <brosner@gmail.com> | 2010-09-12 19:58:05 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2010-09-12 19:58:05 +0000 |
| commit | b7f60045fe9e662c8c53a6f7b4e2c410830d5b29 (patch) | |
| tree | 804ff0e8df2e8d5b02a1c06c8a534fe44943b2de /django/dispatch | |
| parent | 030c97b119bea450cc4e1f289a95e91aa664221c (diff) | |
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
Diffstat (limited to 'django/dispatch')
| -rw-r--r-- | django/dispatch/__init__.py | 2 | ||||
| -rw-r--r-- | django/dispatch/dispatcher.py | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/django/dispatch/__init__.py b/django/dispatch/__init__.py index 0798acc7db..9aeb83c5e1 100644 --- a/django/dispatch/__init__.py +++ b/django/dispatch/__init__.py @@ -6,4 +6,4 @@ See license.txt for original license. Heavily modified for Django's purposes. """ -from django.dispatch.dispatcher import Signal
\ No newline at end of file +from django.dispatch.dispatcher import Signal, receiver
\ No newline at end of file diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py index de09334637..c4516d88b0 100644 --- a/django/dispatch/dispatcher.py +++ b/django/dispatch/dispatcher.py @@ -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 |
