mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #18454 -- Added ability to pass a list of signals to receiver.
				
					
				
			Added ability to use receiver decorator in the following way:
    @receiver([post_save, post_delete], sender=MyModel)
    def signals_receiver(sender, **kwargs):
        ...
			
			
This commit is contained in:
		
				
					committed by
					
						 Florian Apolloner
						Florian Apolloner
					
				
			
			
				
	
			
			
			
						parent
						
							946d3d9f84
						
					
				
				
					commit
					d4da08375b
				
			| @@ -257,14 +257,21 @@ class Signal(object): | ||||
| def receiver(signal, **kwargs): | ||||
|     """ | ||||
|     A decorator for connecting receivers to signals. Used by passing in the | ||||
|     signal and keyword arguments to connect:: | ||||
|     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): | ||||
|             ... | ||||
|  | ||||
|     """ | ||||
|     def _decorator(func): | ||||
|         signal.connect(func, **kwargs) | ||||
|         if isinstance(signal, (list, tuple)): | ||||
|             [s.connect(func, **kwargs) for s in signal] | ||||
|         else: | ||||
|             signal.connect(func, **kwargs) | ||||
|         return func | ||||
|     return _decorator | ||||
|   | ||||
		Reference in New Issue
	
	Block a user