from django.db.models.signals import post_save, post_delete from django.dispatch import receiver from utils.cache import invalidate_cache_patterns from .models import CalendarOccasions TARGET_MODELS = [CalendarOccasions] def invalidate_calendar_cache(): """ Invalidates all Redis cache keys for calendar API views. """ return invalidate_cache_patterns("*calendar_api*") @receiver(post_save) @receiver(post_delete) def clear_calendar_cache_on_save_or_delete(sender, instance, **kwargs): if sender in TARGET_MODELS: invalidate_calendar_cache()