这里举例:监听YourModel的post_save信号,这个信号会在模型实例保存后发送。当接收到这个信号时,我们就清除缓存。
1、创建signals.py文件
from django.core.cache import caches
from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import YourModel
@receiver(post_save, sender=YourModel)
def clear_cache(sender, **kwargs):
caches['default'].delete(key)
2、在应用的 apps.py 文件中,应用配置类的 ready 方法中导入你的信号。这样可以确保当 Django 启动时,你的信号接收器被正确连接。
from django.apps import AppConfig
class YourAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'your_app' # 请用你的实际应用名称替换 'your_app'
def ready(self):
# 导入你的信号模块
# 请用你的实际应用名称替换 'your_app'
import your_app.signals #信号文件路径