def delete_model(self, request, obj): super().delete_model(request, obj) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() cache.delete('index_page_data')
def get(self, request): """显示""" # 先判断缓存中是否有数据,没有数据不会报错返回None context = cache.get('index_page_data') # 查询商品的分类信息 types = GoodsType.objects.all() # 获取首页轮播的商品的信息 index_banner = IndexGoodsBanner.objects.all().order_by('index') # 获取首页促销的活动信息 promotion_banner = IndexPromotionBanner.objects.all().order_by('index') # 获取首页分类商品信息展示 for type in types: # 查询首页显示的type类型的文字商品信息 title_banner = IndexTypeGoodsBanner.objects.filter( type=type, display_type=0).order_by('index') # 查询首页显示的图片商品信息 image_banner = IndexTypeGoodsBanner.objects.filter( type=type, display_type=1).order_by('index') # 动态给type对象添加两个属性保存数据 type.title_banner = title_banner type.image_banner = image_banner # 组织上下文 context = { 'types': types, 'index_banner': index_banner, 'promotion_banner': promotion_banner, } if context is None: # 设置缓存数据,缓存的名字,内容,过期的时间 cache.set('index_page_data', context, 3600) if context != cache.get('index_html_data'): generate_static_index_html.delay() # 获取user user = request.user # 获取登录用户的额购物车中的商品的数量 cart_count = 0 if user.is_authenticated: # 用户已经登录 conn = get_redis_connection('default') cart_key = 'cart_%d' % user.id # 获取用户购物车中的商品条目数 cart_count = conn.hlen(cart_key) # hlen hash中的数目 context.update(cart_count=cart_count) context = { 'types': types, 'index_banner': index_banner, 'promotion_banner': promotion_banner, 'cart_count': cart_count } return render(request, 'index.html', context)
def save_model(self, request, obj, form, change): super(BaseModelAdmin, self).save_model(request, obj, form, change) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除首页缓存数据 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): '''重写save方法,加上保存后要执行的语句''' super().save_model(request, obj, form, change) # 发出任务让celety worker重写生成首页静态 generate_static_index_html.delay() #清除首页的缓存内容 cache.delete('index_page_data')
def delete_model(self, request, obj): '''重写delete方法,加上删除表中数据后的语句''' super().delete_model(request, obj) # 发出任务让celety worker重写生成首页静态 generate_static_index_html.delay() # 清除首页的缓存内容 cache.delete('index_page_data')
def delete_model(self, request, obj): '''删除表中数据时调用''' super().delete_model(request, obj) generate_static_index_html.delay() # 清除首页的缓存数据 cache.delete('index_page_data')
def delete_model(self, request, obj): """删除表中数据时调用""" super().delete_model(request, obj) generate_static_index_html.delay() cache.delete('index_page_data')
def delete_model(self, request, obj): '''删除表中的数据时调用''' super().delete_model(request, obj) # 发出任务,让celery worker重新生成首页静态页 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() cache.delete('index_page_data')
def delete_model(self, request, obj, form, change): '''删除表中的数据时调用''' super.delete_model(request, obj, form, change) # 发出任务, 让celery worker 重新生成首页静态页 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay()
def save_model(self, request, obj, form, change): # 运营人员添加或更新数据时会走的方法 obj.save() # 数据一旦改变 就要生成新的静态页面 generate_static_index_html.delay() #把缓存数据删除 cache.delete('indexpage_static_cache')
def delete_model(self, request, obj): """删除表中数据时调用""" super().delete_model(request, obj) # 发出任务,重新生成首页静态页面 generate_static_index_html.delay() # 清除缓存数据 cache.delete('index_page_data')
def delete_model(self, request, obj): '''在删除模型类表中数据时使用''' super().delete_model(request, obj) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 删除缓存 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): '''在新增或修改模型类表时应用''' super().save_model(request, obj, form, change) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 删除缓存,由于view中缓存若不存在会生成,因此无需在此生成 cache.delete('index_page_data')
def delete_model(self, request, obj): '''删除表中的数据时调用''' super().delete_model(request, obj) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() print("删除后后静态页面生成") cache.delete('index_page_data')
def save_model(self, request, obj, form, change): '''新增或更新时调用''' super().save_model(request, obj, form, change) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() print("新增后静态页面生成") cache.delete('index_page_data')
def delete_model(self, request, obj): """管理员在管理后台删除数据后,会执行此方法""" super().delete_model(request, obj) # 重新生成首页静态页面 generate_static_index_html.delay() # 删除缓存数据 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): super().save_model(request, obj, form, change) # 后台操作数据时生成首页的静态页面 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除缓存数据 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): '''新增或更新表中数据时调用''' super().save_model(request, obj, form, change) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除首页静态页面的缓存 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): # 保证IndexPromotionBanner可以实现数据的存储,而不会被覆盖 obj.save() # 触发异步任务 print('gen index.html') generate_static_index_html.delay() cache.delete('index_page_data')
def delete_model(self, request, obj): """删除表中的数据时调用""" super().delete_model(request, obj) from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除首页缓存的数据 cache.delete('index_page')
def delete_model(self, request, obj): # 运营人员删除数据时会走的方法 obj.delete() # 数据一旦改变 就要生成新的静态页面 generate_static_index_html.delay() # 把缓存数据删除 cache.delete('indexpage_static_cache')
def save_model(self, request, obj, form, change): """新增或更新表中的数据时调用""" super().save_model(request, obj, form, change) # 发出任务,让celery worker重新生成首页静态页 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay()
def save_model(self, request, obj, form, change): """管理员在管理后台新增/修改了数据后,会执行此方法""" super().save_model(request, obj, form, change) # 重新生成首页静态页面 generate_static_index_html.delay() # 删除缓存数据 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): """新增或更新表中的数据时调用""" super().save_model(request, obj, form, change) # 发出任务 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除缓存数据 cache.delete("index_page_data")
def save_model(self, request, obj, form, change): """新增或更新表中数据时调用""" super().save_model(request, obj, form, change) # 继承父类原有操作 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 生成静态页面 # 首页数据改变时,清除首页数据缓存, 在请求页重新请求并设置缓存 cache.delete('index_page_data')
def save_model(self, request, obj, form, change): """新增或更新表中的数据时调用""" super().save_model(request, obj, form, change) # 发出任务,让celery tasks重新生成静态页面 generate_static_index_html.delay() # 清除首页的缓存数据 cache.delete("index_page_data")
def save_model(self, request, obj, form, change): """新增或更新数据表数据是调用""" super().save_model(request, obj, form, change) # 发出任务,让celery worker重新生成静态页面 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除首页的缓存数据 cache.delete('index_page_data')
def delete_model(self, request, obj): """删除表中的数据时调用""" super().delete_model(request, obj) # 发出任务, 让celery worker重新生成静态页 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除数据 cache.delete("index_page_data")
def save_model(self, request, obj, form, change): '''新增或更新表中的数据时调用''' super().save_model(request, obj, form, change) #发出任务,让celery worker 重新生成静态页面 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() #清除首页缓存存储 cache.delete('index_page_data')
def delete_model(self, request, obj): '''删除表中的数据时调用''' super(IndexPromotionBannerAdmin, self).delete_model(request, obj) # 发出任务,让celery worker 重新生成静态页面 from celery_tasks.tasks import generate_static_index_html generate_static_index_html.delay() # 清除首页缓存存储 cache.delete('index_page_data')
def delete_model(self, request, obj): """admin站点在模型删除数据的时候调用""" # 从数据库中删除 obj.delete() # 调用生成静态页面的celery异步任务 generate_static_index_html.delay() # 清除主页的缓存数据 cache.delete("index_page_data")
def save_model(self, request, obj, form, change): """admin站点在模型保存数据的时候调用""" # obj是要保存的模型对象(models里的类的对象) # 将数据保存到数据库中 obj.save() # 调用生成静态页面的celery异步任务 generate_static_index_html.delay() # 清除主页的缓存数据 cache.delete("index_page_data")