当前位置: 代码迷 >> 综合 >> django项目中admin管理更新首页数据表时如何使用celery重新生成index静态页面
  详细解决方案

django项目中admin管理更新首页数据表时如何使用celery重新生成index静态页面

热度:32   发布时间:2024-02-24 10:26:11.0

1. 因为admin后台管理页面新增、修改、删除数据表中的数据时会自动调用admin.ModelAdmin类中的两个方法

save_model方法和delete_model方法,所以我们只需要对这个两个方法进行重写扩展即可

2. admin.py中的代码如下

from django.contrib import admin
from .models import GoodsType, IndexGoodsBanner, IndexPromotionBanner, IndexTypeGoodsBanner
from .models import GoodsSKU
from celery_tasks.tasks import generate_static_index_htmlclass IndexPromotionBannerAdmin(admin.ModelAdmin):def save_model(self, request, obj, form, change):"""新增或更新表中的数据时调用"""# 调用父类的save_model方法super().save_model(request, obj, form, change)# 发出任务,让celery worker重新生成首页静态页面generate_static_index_html.delay()def delete_model(self, request, obj):"""删除表中的数据时调用"""# 调用父类的delete_model方法super().delete_model(request, obj)# 发出任务,让celery worker重新生成首页静态页面generate_static_index_html.delay()# 注册模型类
admin.site.register(IndexTypeGoodsBanner, IndexPromotionBannerAdmin)

 

  相关解决方案