首页 > 解决方案 > “产品”不是注册的命名空间

问题描述

我遇到了一个问题。我在 django 中收到以下错误消息:

我有这个链接:

<a class="prods" href="{% url 'accounts:products' %}">

我收到此错误:

'products' is not a registered namespace

我在主 urls.py 文档中定义了“产品”:

url(r'^products/', include('products.productsurls', namespace='products')),

我还在 producturls.py 中指定了应用名称。

app_name = 'products'

你能想到我可以定义命名空间的任何其他方式吗?这真的让我很困惑。

谢谢!

标签: django

解决方案


由于您正在使用app_name = 'websites',您也可以使用 url 解析以下名称'websites:urlname'。您可以在此处找到更多详细信息。

UPD

看起来问题在这里:

<a class="prods" href="{% url 'accounts:products' %}">

在这种情况下account是命名空间。并且product是模式名称。因此,要使用'accounts:products'url 名称,您需要具有如下模式:

# main urls.py
url(r'^products/', include('products.productsurls', namespace='accounts')),

# productsurls.py
path('', views.IndexView.as_view(), name='products'),

但是,如果您关注 url,它应该是这样的:

<a class="prods" href="{% url 'products:urlname' %}">

推荐阅读