【问题标题】:What would cause a Django template for loop to raise a Key Error?什么会导致 Django 循环模板引发关键错误?
【发布时间】:2009-09-02 14:47:32
【问题描述】:

我将一个正常工作的 Django 应用程序升级到 1.1,现在我在 for 循环中得到一个 KeyError 异常!

模板错误

In template /vol/.../templates/base_bbn.html, error at line 7
Caught an exception while rendering: 'django.contrib.comments.urls.'

你会认为这样的 for 循环中不可能有 KeyError,因为它遍历的每个项目都会有一个键。

{% block blog_class %}
{% for post in POSTS %}    # <-----------Template error on this line
 <p class="bbn-dateln">{{ post.publish|date:"Y F d" }

实际的异常是KeyError

File "/usr/lib/python2.5/site-packages/django/utils/importlib.py", line 36, in import_module
return sys.modules[name]
KeyError: 'django.contrib.comments.urls.'

关于如何调试的任何建议?我传递给此模板以进行渲染的帖子看起来很好......

【问题讨论】:

  • 重新标记以删除“1.1”标签。可以是任何产品的版本号。
  • @Gorgapor:你应该重新标记到django-1.1
  • POSTS 的价值是什么? (另外,在模板中使用 caps 变量名是不好的风格)。

标签: django templates django-1.1


【解决方案1】:

好的!我自己想通了。

似乎 1.1 中的 django.contrib.cmets.urls 现在依赖于我的 python 环境没有的模块 dateutils。一旦我通过 easy_install 安装了 dateutils,它又开始工作了。

由于某种原因,这导致的异常在 django 错误页面上冒泡为“模板错误”和“KeyError”。在 python 调试器中花了一些时间才找到真正的原因

【讨论】:

    猜你喜欢
    • 2020-11-05
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2020-02-24
    • 2022-01-04
    相关资源
    最近更新 更多