在我的Django模板中,我有几段代码如下:
<a href="{% url root %}">Root</a>
渲染模板时它们可以正常工作。但是,每当我使用Django的单元测试框架运行我的单元测试时,我都会收到以下错误:
NoReverseMatch:反向'mysite.root',参数'()'和关键字参数'{}'找不到。
在urls.py
(url(r'^$', 'index', name='root')
)中正确命名了根,并且在浏览网站时,错误不会显示 - 仅在单元测试期间。
如果我将代码更改为:
{% url root as root_path %}
<a href="{{ root_path }}">Root</a>
错误也消失了。第一段代码有什么问题?
答案 0 :(得分:0)
显然,测试实际上是失败的,因为Django无法在数据库中找到Site记录。这可能是因为我的SITE_ID
设置为1以外的其他内容;这应该是固定的,正如ticket中提到的那样,但它似乎并没有实际修复。