Django--监听admin数据变化
监听后台数据变化,即监听后台任何数据操作,进而做出相应的响应
在app应用的admin.py中,可以实现后台监听
以meiduo商城代码为例:
from django.contrib import admin from . import models from celery_tasks.html.tasks import generate_static_list_search_html # Register your models here. class GoodsCategoryAdmin(admin.ModelAdmin): '''商品类别模型站点管理类''' def save_model(self, request, obj, form, change): ''' :param request: 保存时本次的请求对象 :param obj: 本次要保存的模型对象 :param form: admin中表单 :param change: 是否改变 ''' obj.save() # 重新生成新的列表静态界面,使用异步减缓阻塞 generate_static_list_search_html.delay() def delete_model(self, request, obj): '''当点击admin中删除按钮时会调用此方法''' obj.delete() # 重新生成新的列表静态界面,使用异步减缓阻塞 generate_static_list_search_html.delay() class GoodsChannelAdmin(admin.ModelAdmin): '''商品类别模型站点管理类''' def save_model(self, request, obj, form, change): ''' :param request: 保存时本次的请求对象 :param obj: 本次要保存的模型对象 :param form: admin中表单 :param change: 是否改变 ''' obj.save() # 重新生成新的列表静态界面,使用异步减缓阻塞 generate_static_list_search_html.delay() def delete_model(self, request, obj): '''当点击admin中删除按钮时会调用此方法''' obj.delete() # 重新生成新的列表静态界面,使用异步减缓阻塞 generate_static_list_search_html.delay() # 模型站点管理类要进行注册才能使用 admin.site.register(models.GoodsCategory,GoodsCategoryAdmin) admin.site.register(models.GoodsChannel,GoodsChannelAdmin) admin.site.register(models.Goods) admin.site.register(models.Brand) admin.site.register(models.GoodsSpecification) admin.site.register(models.SpecificationOption) admin.site.register(models.SKU) admin.site.register(models.SKUSpecification) admin.site.register(models.SKUImage)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通