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)
复制代码

 

posted @   EricYJChung  阅读(385)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示