什么会导致Django模板for循环引发键错误?

时间:2009-09-02 14:47:33

标签: django templates django-1.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.'

有关如何调试此问题的任何建议?我传递给这个模板的POSTS看起来很好......

1 个答案:

答案 0 :(得分:1)

确定!我自己想通了。

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

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