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)