Django的信号(signals)系统

这里举例:监听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 #信号文件路径
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容