from django.db.models.signals import post_save from django.dispatch import receiver from .models import AbsencePeriod from calendars.models import Event, EventParticipation @receiver(post_save, sender=AbsencePeriod) def handle_absence_period(sender, instance, **kwargs): user = instance.user events_in_period = Event.objects.filter( team=user.team, start_time__date__gte=instance.start_date, start_time__date__lte=instance.end_date ) for event in events_in_period: EventParticipation.objects.update_or_create( user=user, event=event, defaults={'status': 'rejected'} )