Url 模板标签引发 NoReverseMatch 错误,但生成的 url 是正确的
Url template tag raises NoReverseMatch error but the generated url is correct
我无法使用 {% url %} 在 Django 模板中生成 urls。我收到以下错误:
Reverse for 'category' with arguments '()' and keyword arguments '{'category_name_slug': ''}' not found. 1 pattern(s) tried: ['rango/category/(?P<category_name_slug>[\w\-]+)/$']
这是我使用标签的方式:
{% url 'rango:category' category_name_slug=category.slug %}
这是相对的 url() 定义:
url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category')
有趣的是,如果我使用 category.id 而不是 slug 它就可以工作,但是当然生成的 url 没有太多类别,因为"slug",视图中不应包含 id。
如果我用这个标签就更陌生了
{% url 'rango:category' category_name_slug=category.slug as slug %}
{{ slug }}
那么生成 url 是正确的,没有出现错误。
阅读错误似乎没有任何内容作为关键字参数传递。
有什么想法吗?
错误信息的关键部分是
'{'category_name_slug': ''}'
这暗示您没有将类别正确传递给模板,或者您的类别没有设置 slug。
你说使用 category.id
不会导致错误,这意味着你正确地将类别传递给模板。
因此您可能有一个没有 slug 集的类别。检查数据库中的值。
我无法使用 {% url %} 在 Django 模板中生成 urls。我收到以下错误:
Reverse for 'category' with arguments '()' and keyword arguments '{'category_name_slug': ''}' not found. 1 pattern(s) tried: ['rango/category/(?P<category_name_slug>[\w\-]+)/$']
这是我使用标签的方式:
{% url 'rango:category' category_name_slug=category.slug %}
这是相对的 url() 定义:
url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category')
有趣的是,如果我使用 category.id 而不是 slug 它就可以工作,但是当然生成的 url 没有太多类别,因为"slug",视图中不应包含 id。
如果我用这个标签就更陌生了
{% url 'rango:category' category_name_slug=category.slug as slug %}
{{ slug }}
那么生成 url 是正确的,没有出现错误。
阅读错误似乎没有任何内容作为关键字参数传递。
有什么想法吗?
错误信息的关键部分是
'{'category_name_slug': ''}'
这暗示您没有将类别正确传递给模板,或者您的类别没有设置 slug。
你说使用 category.id
不会导致错误,这意味着你正确地将类别传递给模板。
因此您可能有一个没有 slug 集的类别。检查数据库中的值。