Add skip_signal to utils

This commit is contained in:
littlewolf 2019-11-06 23:13:57 +03:00
parent 57d22bedcb
commit 0058a3bdd4
2 changed files with 14 additions and 0 deletions

View File

@ -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

12
apps/utils/signals.py Normal file
View File

@ -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