通过管理员更新信息时出现问题。
变量product_list和shop_list由我的base.html模板调用,以填充网站每个页面上的一些菜单
在主页上,变量被输入的地方抛出了views.py,这些变化立即得到反映。
但是在其他页面上,由context_manage.py提供变量,直到我重置apache,或者可能在一些未定义的时间段之后才会反映出这些变化......绝对不会在合理的时间内。
为什么上下文管理器无法正常工作?如何在管理员输入时确保列表在所有页面上更新,而不是将它们单独传递到每个视图?
查看index.html:
general = get_object_or_404(General, pk=1)
product_list = Product.objects.all()
shop_list = general.shop_set.all();
context_manage.py中的内容:
general = General.objects.get(pk=1)
product_list = Product.objects.all()
shop_list = general.shop_set.all();
def passProList(request):
return {
'product_list': product_list,
'shop_list': shop_list,
}
答案 0 :(得分:1)
将这些变量的定义移动到他们自己的方法中或直接移动到passProList
。目前,它们是在编译python文件时进行评估的。在模板中访问它们时,需要对它们进行评估。
def get_pro_lists(pk):
general = General.objects.get(pk=pk)
product_list = Product.objects.all()
shop_list = general.shop_set.all()
return product_list, shop_list
def passProList(request):
product_list, shop_list = get_pro_lists(1)
return {
'product_list': product_list,
'shop_list': shop_list,
}