当管理员对页面数据进行修改后,我要对Django已经缓存的数据也进行修改,那么就要到admin.py文件中重写save_model方法和delete_model方法,在保存和删除的时候清除掉Django的缓存,然后在用户再次访问时再次将新的页面进行缓存
admin.py
from django.contrib import admin
from django.core.cache import cache
# 编写后台管理类
class BaseModelAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
""" 重写save_model方法 """
# 更新表中的数据时调用
super().save_model(request, obj, form, change) # 先调用父类的方法,将修改的数据进行保存
# 清空缓存,key 是键名,之前缓存的是哪个就填哪个
cache.delete('key')
def delete_model(self, request, obj):
""" 重写delete_model """
# 删除表中的数据时调用
super().delete_model(request, obj)
# 清空缓存,key 是键名,之前缓存的是哪个就填哪个
cache.delete('key')