【问题标题】:Why does Django's built-in "url" tag cause an error when running unit tests?为什么 Django 内置的“url”标签在运行单元测试时会导致错误?
【发布时间】:2010-11-09 05:52:36
【问题描述】:

在我的 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>

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

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    显然,测试实际上失败了,因为 Django 在数据库中找不到站点记录。可能是因为我的SITE_ID 设置为 1 以外的值;正如ticket 中提到的那样,这应该是已修复的,但实际上似乎并未修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      相关资源
      最近更新 更多