代码之家  ›  专栏  ›  技术社区  ›  mipadi

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

  •  0
  • mipadi  · 技术社区  · 15 年前

    在我的django模板中,我有一些类似的代码:

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

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

    noreversMatch:找不到参数为“()”且关键字参数为“”的“mysite.root”的反向。

    根在中正确命名 urls.py ( url(r'^$', 'index', name='root') )同样,当浏览站点时,错误不会出现——只在单元测试期间出现。

    如果我将代码更改为:

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

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   mipadi    15 年前

    显然,测试实际上失败了,因为Django在数据库中找不到站点记录。可能是因为我的 SITE_ID 设置为除1之外的其他值;如本节所述,这应该是固定的。 ticket 但它似乎并没有被修复。