【问题标题】:NoReverseMatch when href name in urlsurl中的href名称时NoReverseMatch
【发布时间】:2017-06-07 17:58:19
【问题描述】:

我在使用时得到 NoReverseMatch

{% url 'detail' a.id %}

在我的模板中。

我的网址中没有包含 $。在谷歌搜索中找到了。

这是我的主要网址

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^item/', include('item.urls')),
    url(r'^status/', include('status.urls')),
]

还有我的 status.urls

urlpatterns = [
    # /status/
    url(r'^$', views.index, name='index'),
    # /status/<status_id>/
    url(r'^(?P<status_id>[0-9]+)/$', views.detail, name='detail'),
]

如果我删除{% url 'detail' a.id %}和硬编码status/{{ a.id }},它会起作用

我不明白我哪里出错了。

【问题讨论】:

    标签: django python-3.x django-templates


    【解决方案1】:

    您需要一个关键字参数。试试这个:

    {% url 'detail' status_id=a.id %}
    

    原因是您的detail 视图根据您的urls.py 接收到关键字参数:(?P&lt;status_id&gt;[0-9]+)

    【讨论】:

    • 不。但我现在找到了。经过数小时的搜索却没有运气。写完一个问题后,你会在 15 分钟后找到它。所以我需要在网址中设置:app_name = 'status'。然后写 {% url 'status:detail' a.id %} 这样就可以了。
    • @sumpen 您可以将关键字参数或位置参数传递给url 标签。
    猜你喜欢
    • 1970-01-01
    • 2013-12-27
    • 2023-03-08
    • 1970-01-01
    • 2014-09-08
    • 2021-11-29
    • 2011-05-14
    • 2013-12-29
    • 2020-02-23
    相关资源
    最近更新 更多