Files
atabackend/home/signals.py
Beyhan Oğur d50f14bcb1 first commit
2026-04-26 22:20:45 +03:00

53 lines
1.7 KiB
Python

from django.db.models.signals import post_save, post_delete, m2m_changed
from django.dispatch import receiver
from django.core.cache import cache
from home.models import (Home, AboutMe, MyService, MyServiceTitle, MyResume, Education, Experience, Skill, Knowledge,
MainMenu, Tags)
HOME_CACHE_KEYS = (
'home:active_home',
'home:active_aboutme',
'home:service_list',
'home:service_title',
'home:resume',
'home:education_list',
'home:experience_list',
'home:skill_list',
'home:knowledge_list',
'home:active_menu',
)
def clear_home_cache():
cache.delete_many(HOME_CACHE_KEYS)
@receiver(post_save, sender=Home)
@receiver(post_delete, sender=Home)
@receiver(post_save, sender=AboutMe)
@receiver(post_delete, sender=AboutMe)
@receiver(post_save, sender=MyService)
@receiver(post_delete, sender=MyService)
@receiver(post_save, sender=MyServiceTitle)
@receiver(post_delete, sender=MyServiceTitle)
@receiver(post_save, sender=MyResume)
@receiver(post_delete, sender=MyResume)
@receiver(post_save, sender=Education)
@receiver(post_delete, sender=Education)
@receiver(post_save, sender=Experience)
@receiver(post_delete, sender=Experience)
@receiver(post_save, sender=Skill)
@receiver(post_delete, sender=Skill)
@receiver(post_save, sender=Knowledge)
@receiver(post_delete, sender=Knowledge)
@receiver(post_save, sender=MainMenu)
@receiver(post_delete, sender=MainMenu)
def clear_home_cache_on_save(sender, instance, **kwargs):
clear_home_cache()
@receiver(m2m_changed, sender=Home.tags.through)
def clear_home_cache_on_tags_change(sender, instance, action, **kwargs):
if action in {"post_add", "post_remove", "post_clear"}:
clear_home_cache()