首页 > 解决方案 > 在 Django 模板中使用 url

问题描述

我有以下 django 1.9 端点:

url(r'^(?P<pk>\d+)/members/(?P<status>active|deactivated)?$',
    gym.GymUserListView.as_view(),
    name='user-list')

使用上面的,一个有效的 url 就像/1/members/active/1/members/deactivated

我正在尝试url在我的一个模板中使用,例如:

<button type="button" class="btn btn-outline-warning">
  <a href="{% url 'user-list' pk=gym.id status='deactivated' %}"/>View Inactive</a>
</button>

这会引发以下错误:

django.core.urlresolvers.NoReverseMatch: Reverse for 'user-list' with arguments '()' and keyword arguments '{'pk': 1, 'status': 'deactivated'}' not found.
0 pattern(s) tried: [ ]

有什么问题?

标签: pythondjangopython-3.xdjango-urls

解决方案


这可能是几件事。

  • 仔细检查该正则表达式的语法(我没有这样做)。也许删除状态参数的or模式并将其替换为现在通用的东西,以消除潜在原因。
  • 您也可以尝试完全删除第二个参数,看看您是否可以获得仅由 pk 生成的 URL - 这将确定问题是否出在您的 url 的模式或配置上
  • 根据您的应用布局,您可能需要在模板标签中使用命名空间:{% url 'myapp:user-list' pk=gym.id status='deactivated' %}
  • 您的应用程序urls.py是否适用于这种情况INSTALLED_APPS

推荐阅读