1

我将一个正常工作的 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.'

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

4

1 回答 1

1

行!我自己想通了。

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

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

于 2009-09-02T17:41:23.650 回答