我在我的Django项目中使用第三方应用程序(django-sphinxdoc),我希望能够在base.html模板中链接到它,以便可以从使用base.html的所有页面访问它,但我无法弄清楚如何做到这一点。它适用于" Home"和"管理员"如下定义。
我尝试了很多不同的变种,下面我得到了:
异常类型:NoReverseMatch异常值:反向 ' DOC名单'参数'()'和关键字参数' {}'不 找到。尝试了0种模式:[]
我有一个urls.py:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^', include('Myapp.urls', namespace='Myapp')),
url(r'^admin/', admin.site.urls),
url(r'^docs/', include('sphinxdoc.urls', namespace='Myapp-sphinxdoc'),),
]
Myapp / urls.py:
from django.conf.urls import include, url
from . import views
urlpatterns = [
url(r'^$', views.index, name='Myapp-index'),
url(r'^(?P<detail_id>[0-9]+)/$', views.detail, name='Myapp-detail'),
]
我的base.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<div class="box">
<h1>MYAPP</h1>
<hr>
<a href="{% url 'Myapp:Myapp-index' %}">Home</a>
<a href="{% url 'admin:index' %}">Admin</a>
<a href="{% url 'Myapp-sphinxdoc:doc-list' %}">Docs</a>
<hr>
{% block content %}{% endblock %}
{% block footer %}
<hr>
© Copyright 2017, MG
{% endblock %}
</div>
</body>
</html>
在sphinxdoc urls.py中,我找到了名称&#39; doc-list&#39;我想在上面提到:
urlpatterns = [
url(r'^$', views.OverviewList.as_view(), name='docs-list',),
...
我想我不明白如何使用名称和命名空间,我们非常感谢任何建议。
/ M
答案 0 :(得分:0)
urlpatterns = [
url(r'^', include('Myapp.urls', namespace='Myapp')),
url(r'^admin/', admin.site.urls),
url(r'^docs/', include('sphinxdoc.urls')),
url(r'^docs/', include('sphinxdoc.urls', namespace='Myapp-sphinxdoc')),
]
如果我删除任何第三或第四种模式,我会收到错误。 所以,我很高兴事情正在发挥作用,但我真的很想理解为什么。