我在我的Django項目中使用了第三方應用程序(django-sphinxdoc),我希望能夠在base.html模板中鏈接到它,以便它可以從所有頁面正在使用base.html,但我無法弄清楚如何做到這一點。它適用於下面定義的「Home」和「Admin」。Django應用程序的反向URL
我已經嘗試了一些不同的變種,並與下面我得到:
異常類型:NoReverseMatch異常值:反轉與參數 「文檔列表」「()」和關鍵字參數「 {}'不是 找到。 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中我找到了名字'doc-list',我試圖參考上面的內容:
urlpatterns = [
url(r'^$', views.OverviewList.as_view(), name='docs-list',),
...
我想我不明白如何使用名稱和命名空間,任何建議將不勝感激。
/M
你能分享一個鏈接到'sphinx'網址嗎? –
根據['django-sphinxdoc.sphinxdoc.urls'](https://github.com/yawd/django-sphinxdoc/blob/master/sphinxdoc/urls.py),沒有名爲'docs-list'的網址。 –
大概忘記''應該是''Myapp-sphinxdoc:docs-list'' – metmirr