对Django上下文的更改未在temp中显示

2024-09-30 20:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模板,其中包含从视图中创建的上下文打印的变量。它已经完美地工作了几个月。在

我已经在上下文中添加了一些新变量,但是它们不会出现在模板中。在

当我在本地运行Django项目时,如果删除上下文中两个变量之间的逗号,就会得到一个错误,正如预期的那样。如果我把逗号加回去,新的变量就会在模板中。但是当我将更改推送到Openshift时,新的变量永远不会出现。事实上,如果我删除了一些现有的变量,模板仍然会像它们在那里一样呈现。在

我已经清除了浏览器中的缓存。没修好。我没有在Django中使用缓存(在设置.py显示没有点击)。在

很明显,有东西在某处缓存某物,但我不知道在哪里。由于在本地运行时,我的更改偶尔会出现在我的浏览器中,因此我确信python代码中没有任何语法错误。以下是上下文列表:

        context = {
         'slug': 'Admin Home .'
        , 'players': len(players)
        , 'paid': totalPaid
        , 'unpaid': len(unpaid)
        , 'monday': monday
        , 'tuesday': tuesday
        , 'wednesday': wednesday
        , 'donations': donations
        , 'ssmall': ssmall
        , 'smedium': smedium
        , 'slarge': slarge
        , 'sxl': sxl
        , 'sxxl': sxxl
        , 'page': page
    }

以下是一个未在模板中显示的变量的示例:

^{pr2}$

slarge变量有一个值。我通过在shell中运行一些代码来检查它,就像我上面说的,它偶尔会出现在呈现的页面上。在

我还更改了head部分中的页面标题,这些更改也只是偶尔出现,只要变量在页面上正确填充。在

从我读到的内容来看,Openshift使用的Apache和/或mod_wsgi似乎在缓存某些东西,但我不知道如何修复它。我已经在Openshift中重新启动了应用程序,但这并没有修复它。在

谢谢你的帮助。在


Tags: django代码模板len浏览器页面逗号openshift
2条回答

通常,在执行HTTP请求时,HTML不会被缓存。导航器将缓存CSS、javascript、图像等。当请求一个网页时,导航器总是呈现它收到的HTML。在

我用nginx和django运行一个网站,根据经验,我可以告诉您,大多数时候,在对应用程序(Python文件)进行更改时,必须重新启动django。(这可能是django的一个设置)

除非在模板中设置ca缓存(这需要很多设置),否则对模板的任何修改都将自动呈现在您的网站中。默认情况下,django不缓存模板,每次请求模板时它都会处理它们。在

Django是您的框架,apache是您的服务器。要使您的网站正常工作,必须有两个守护进程,一个用于apache,一个用于django。在

重新启动apache不会重新启动django应用程序的代码。您需要做的是重新启动运行django框架的守护进程。在

当您在本地运行代码时,您的代码会按预期工作,因为每次使用命令python manage.py runserver..都会重新加载django框架

我应该首先提到我的项目。在

我在类的get部分而不是post部分中进行所有这些更改,它应该在post部分进行。在

相关问题 更多 >