diff --git a/apps/search_indexes/signals.py b/apps/search_indexes/signals.py index 3da50fb8..9284b20a 100644 --- a/apps/search_indexes/signals.py +++ b/apps/search_indexes/signals.py @@ -2,9 +2,11 @@ from django.db.models.signals import post_save from django.dispatch import receiver from django_elasticsearch_dsl.registries import registry +from utils.signals import skip_signal @receiver(post_save) +@skip_signal() def update_document(sender, **kwargs): from establishment.models import Establishment app_label = sender._meta.app_label diff --git a/apps/utils/signals.py b/apps/utils/signals.py new file mode 100644 index 00000000..e4ceba89 --- /dev/null +++ b/apps/utils/signals.py @@ -0,0 +1,12 @@ +from functools import wraps + + +def skip_signal(): + def _skip_signal(signal_func): + @wraps(signal_func) + def _decorator(sender, instance, **kwargs): + if hasattr(instance, 'skip_signal'): + return None + return signal_func(sender, instance=instance, **kwargs) + return _decorator + return _skip_signal