Python DJANGO:上下文管理器传递给模板的变量不反映管理更改
我有一个问题,当信息是通过管理员更新 my base.html模板正在调用变量product_list和shop_list,以填充网站每个页面上的一些菜单 在主页上,变量被输入views.py,更改会立即反映出来 但是在其他页面上,context_manage.py提供变量,直到我重置apache,或者可能在未定义的一段时间之后,这些更改才会反映出来。。。无论如何,肯定不是在合理的时间内 为什么上下文管理器不能正常工作?我如何确保列表在管理员输入时在所有页面上更新,而不将它们单独传递给每个视图 index.html的视图:Python DJANGO:上下文管理器传递给模板的变量不反映管理更改,python,django,apache,Python,Django,Apache,我有一个问题,当信息是通过管理员更新 my base.html模板正在调用变量product_list和shop_list,以填充网站每个页面上的一些菜单 在主页上,变量被输入views.py,更改会立即反映出来 但是在其他页面上,context_manage.py提供变量,直到我重置apache,或者可能在未定义的一段时间之后,这些更改才会反映出来。。。无论如何,肯定不是在合理的时间内 为什么上下文管理器不能正常工作?我如何确保列表在管理员输入时在所有页面上更新,而不将它们单独传递给每个视图
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,
}
将这些变量的定义移到它们自己的方法中,或直接移到
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,
}
所以,让我直说吧。在我的程序中,每次填充视图以获取上下文时都会调用passProList,但在脚本首次编译时,它包含的变量只设置一次,因为数据库在
passProList
之外调用时只运行一次。。。当我重置apache时。那么通过调用访问数据库的passProList中的函数,每次调用passProList时都会访问数据库?