在我的django模板中,我有一些类似的代码:
<a href="{% url root %}">Root</a>
它们在渲染模板时工作正常。但是,每当我使用Django的单元测试框架运行单元测试时,我会得到以下错误:
noreversMatch:找不到参数为“()”且关键字参数为“”的“mysite.root”的反向。
根在中正确命名 urls.py ( url(r'^$', 'index', name='root') )同样,当浏览站点时,错误不会出现——只在单元测试期间出现。
urls.py
url(r'^$', 'index', name='root')
如果我将代码更改为:
{% url root as root_path %} <a href="{{ root_path }}">Root</a>
错误也会消失。第一段代码有什么问题?
显然,测试实际上失败了,因为Django在数据库中找不到站点记录。可能是因为我的 SITE_ID 设置为除1之外的其他值;如本节所述,这应该是固定的。 ticket 但它似乎并没有被修复。
SITE_ID