我有一个模板,其中包含从我在视图中创建的Context中打印的变量。它已经完美地工作了几个月。
我在上下文中添加了一些新变量,但它们不会显示在模板中。
当我在本地运行Django项目时,如果我在上下文中的两个变量之间删除逗号,我会收到错误,如预期的那样。然后,如果我添加逗号,则新变量将在模板中。但是,当我将更改推送到Openshift时,新变量永远不会出现。实际上,如果我删除一些现有变量,模板仍然会像在那里一样呈现。
我在浏览器中清除了缓存。没有解决它。我没有在Django中使用缓存(在settings.py中搜索'cache'显示没有命中)。
显然,有些东西在某处缓存,但我无法弄清楚在哪里。由于我在本地运行时偶尔会在浏览器中显示更改,因此我确信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
}
以下是未在模板中显示的其中一个变量的示例:
Large: {{slarge}}
slarge变量有一个值。我通过运行shell中的一些代码来检查它,就像我上面说的那样,偶尔会出现在渲染页面上。
我还更改了head部分中的页面标题,只要变量在页面上正确填充,这些更改只会偶尔出现。
从我所看到的,听起来像Openshift使用的Apache和/或mod_wsgi是缓存某些东西,但我不知道如何修复它。我已经在Openshift中重新启动了应用程序,但这还没有解决它。
我感谢任何帮助。
答案 0 :(得分:0)
通常,在执行HTTP请求时不会缓存HTML。您的导航器将缓存的内容是CSS,javascript,图像等。在请求网页时,导航器始终呈现其收到的HTML。
我使用nginx和django运行一个网站,根据经验我可以告诉你,大多数时候在更改应用程序(Python文件)时,有必要重新启动django 。 (这可能是django中的一个设置)
除非您在模板中设置了ca缓存(需要许多设置),否则模板的任何修改都将自动在您的网站中呈现。默认情况下,django不会缓存模板,并且每次请求时都会处理它们。
Django是你的框架,apache是你的服务器。要使您的网站正常工作,必须有两个守护进程,一个用于apache,一个用于django。
重新启动apache不会重新启动django应用程序的代码。您需要做的是重新启动运行django框架的守护进程。
当您在本地运行代码时,您的代码按预期工作,因为每次使用命令python manage.py runserver..
答案 1 :(得分:0)
我应该提到,这是我的第一个Django项目。
我在一个类的get部分而不是post部分进行了所有这些更改,它应该在post部分中。