mat/backend/apps/material/signals.py

22 lines
568 B
Python

from django.core.cache import cache
from django.db.models.signals import post_delete, post_save
from django.dispatch import receiver
from .models import Material
CATEGORY_TREE_CACHE_KEY = 'material:category_tree:approved'
def invalidate_category_tree_cache():
cache.delete(CATEGORY_TREE_CACHE_KEY)
@receiver(post_save, sender=Material)
def _on_material_saved(sender, instance, **kwargs):
invalidate_category_tree_cache()
@receiver(post_delete, sender=Material)
def _on_material_deleted(sender, instance, **kwargs):
invalidate_category_tree_cache()