2017-03-12 41 views
0

我在我的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

+0

你能分享一個鏈接到'sphinx'網址嗎? –

+0

根據['django-sphinxdoc.sphinxdoc.urls'](https://github.com/yawd/django-sphinxdoc/blob/master/sphinxdoc/urls.py),沒有名爲'docs-list'的網址。 –

+0

大概忘記''應該是''Myapp-sphinxdoc:docs-list'' – metmirr

回答

0

嗯,現在的作品,但我真的不明白爲什麼...... 我糾正,是由nik_m和metmirr發現錯字,然後我加了一排我的根urls.py ,低於第三URL模式:

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')), 
] 

如果我刪除任何第三或第四模式,我得到的錯誤。 所以,我很高興的事情正在工作,但我真的很想明白爲什麼。

+0

方式去@mats !好樣的! –

+0

nik_m,metmirr,謝謝你的幫助。我仍然不明白爲什麼我需要新的urlpattern。 – Mats

相關問題