import logging from django.dispatch import Signal logger = logging.getLogger(__name__) new_membership = Signal(Signal("user")) ending_membership = Signal(Signal("user")) updating_membership = Signal(["user"]) from django.db.models.signals import post_save, post_delete from django.contrib.auth.models import User from django.contrib.auth import get_user_model def my_callback(sender,created,instance, **kwargs): if created: new_membership.send(sender=sender, user=instance) else: # TODO remove this temps part User = get_user_model() users = User.objects.all() for usr in users: print(f"sync {usr}") new_membership.send(sender=sender, user=usr) updating_membership.send(sender=sender, user=usr) updating_membership.send(sender=sender, user=instance) def del_callback(sender, instance, **kwargs): ending_membership.send(sender=sender, user=instance) post_save.connect(my_callback, sender=User) post_delete.connect(del_callback, sender=User)