回答了类似的问题here。
但我的情况略有不同。我创建了一个名为“类别”的可重用应用程序。在我的项目中,我有一个名为“仪表板”的应用程序。仪表板应用程序包含可重复使用的“类别”应用程序。这会导致以下内容用于反转网址
reverse('dashboard:categories:browse')
但是,我的可重用应用程序不知道“仪表板”命名空间。我希望能够使用上面链接的解决方案在可重复使用的类别应用程序中仅反转以下内容。
reverse('categories:browse')
目前,在categories.urls中设置app_name
不起作用。在撤消“类别:浏览”时,我得到NoReverseMatch
。
以下是urls.py文件中如何包含应用程序的摘录。
# myproject/urls.py
url(
r'^dashboard/',
include(
'dashboard.urls',
namespace='dashboard',
)
),
# dashboard/urls.py
url(
r'^categories/',
include(
'categories.urls',
namespace="categories",
),
),
答案 0 :(得分:0)
您可以直接在categories
主urls.py
中添加# myproject/urls.py
url(r'^dashboard/categories/', include('categories.urls', namespace='categories')),
url(r'^dashboard/', include('dashboard.urls', namespace='dashboard')),
个网址:
categories
这样,您的reverse('categories:browse')
网址不在嵌套名称空间中,您只需使用def check(x, num, i):
if not x[i:]: # index past length
return False
if x[i] == num:
return True
return(check(x, num, i+1))
。