为什么Django的内置“url”标签在运行单元测试时会导致错误?

时间:2009-07-09 02:02:07

标签: django django-templates

在我的Django模板中,我有几段代码如下:

<a href="{% url root %}">Root</a>

渲染模板时它们可以正常工作。但是,每当我使用Django的单元测试框架运行我的单元测试时,我都会收到以下错误:

  

NoReverseMatch:反向'mysite.root',参数'()'和关键字参数'{}'找不到。

urls.pyurl(r'^$', 'index', name='root'))中正确命名了根,并且在浏览网站时,错误不会显示 - 仅在单元测试期间。

如果我将代码更改为:

{% url root as root_path %}
<a href="{{ root_path }}">Root</a>

错误也消失了。第一段代码有什么问题?

1 个答案:

答案 0 :(得分:0)

显然,测试实际上是失败的,因为Django无法在数据库中找到Site记录。这可能是因为我的SITE_ID设置为1以外的其他内容;这应该是固定的,正如ticket中提到的那样,但它似乎并没有实际修复。