【问题标题】:Caching somewhere preventing updated templates in Django 1.6在 Django 1.6 中缓存某处阻止更新模板
【发布时间】:2014-10-01 20:02:08
【问题描述】:

为拙劣的标题道歉。运行 Django 1.6 服务器并访问一组特定模板时出现模板错误。我已经删除了

/url_name 处的模板语法错误
无法解析余数:'hr-name-remainder'中的'-name-remainder' Django 1.5 中'url' 的语法发生了变化,请参阅文档。

删除所有对hr-name-remainder的引用后

我跑了

from django.core.cache import cache
cache.clear 

标签{%load cache%} 没有出现在任何模板中,我已经清空了浏览器缓存。并且仍然发生相同的错误。该错误发生在另一个浏览器中(肯定与任何浏览器缓存隔离?)所以在 Django 中发生了一些事情。我什至多次重新启动服务器。

我的 settings.py 中没有 CACHE 设置,(我应该澄清这不是我的代码)并且对“缓存”的唯一引用是在我们具有以下 javascript 的模板之一中

<script>
$(".show_filter").click(function (e) {
    $(".filter").toggleClass("hidden");
    $(this).toggleClass("on");
});

$(document).ready(function() {
   $('#search_input').autocomplete(
       {
           source: "{% url 'url_nameTWO' %}",
           delay: 50,
           minChars: 1,
           matchSubset: 1,
           matchContains: 1,
           cacheLength: 50,
           autoFill: false,
           maxItemsToShow: 10,
           onItemSelect: function(x) { $('#search_input_large').focus(); }
       }
   );
});

一些答案​​询问了确切的语法,我已将 cmets 更改为 django 模板注释标签,现在看起来像这样(四个示例)

  {#  <li {% block case_study_nav_class %}{% endblock %}><a href="{% url 'hr-name-remainder object.slug %}">Case studies</a></li> #}

【问题讨论】:

  • 这不是缓存。你确定你已经删除了所有的引用(例如grep -r "hr-name-remainder" * 从你的项目根目录运行时会显示什么)?你是如何重启服务器的?
  • 用 ack-grep 检查并且模板中的所有引用都被注释掉了。使用 CTRL-C 停止服务器并使用 django-admin.py runserver 重新启动 ...
  • “评论”是什么意思?显示模板示例。
  • 道歉——上面的错字应该是“模板中的所有引用都被注释掉了”。因为他们现在有 标签。所以恕我直言,甚至不应该读取引用——因此是关于缓存的引用。当我注释掉代码时,我不希望它会引发错误。

标签: javascript python django caching


【解决方案1】:

您对 cme​​ts 的解释揭示了您的问题。 Django 不关心 HTML 注释标签,会继续解析 cmets 内部的模板标签。如果你需要在一个模板中把事情写出来,你应该使用 Django 注释标签,例如{# ... #}

当然,您最好解决实际问题,错误消息指向的文档中对此进行了充分解释:将 URL 名称放在引号中。

【讨论】:

  • 谢谢。我沿着评论路线走,因为所有 url 已经 >1.5 兼容,并且我被警告这个错误可能是由于上游问题,所以我试图隔离它。我现在已按照建议将标签更改为 {# ... #},但问题仍然存在。
猜你喜欢
  • 2020-05-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 2019-01-15
  • 2013-09-14
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
相关资源
最近更新 更多