Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DJANGO:上下文管理器传递给模板的变量不反映管理更改_Python_Django_Apache - Fatal编程技术网

Python DJANGO:上下文管理器传递给模板的变量不反映管理更改

Python DJANGO:上下文管理器传递给模板的变量不反映管理更改,python,django,apache,Python,Django,Apache,我有一个问题,当信息是通过管理员更新 my base.html模板正在调用变量product_list和shop_list,以填充网站每个页面上的一些菜单 在主页上,变量被输入views.py,更改会立即反映出来 但是在其他页面上,context_manage.py提供变量,直到我重置apache,或者可能在未定义的一段时间之后,这些更改才会反映出来。。。无论如何,肯定不是在合理的时间内 为什么上下文管理器不能正常工作?我如何确保列表在管理员输入时在所有页面上更新,而不将它们单独传递给每个视图

我有一个问题,当信息是通过管理员更新

my base.html模板正在调用变量product_list和shop_list,以填充网站每个页面上的一些菜单

在主页上,变量被输入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,
    }

将这些变量的定义移到它们自己的方法中,或直接移到
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时都会访问数据库?