2013-05-01 79 views
0

這是我的應用程序樹:Django的URL反向匹配誤差

myapp/ 
    assets/ 
    statics/ 
    settings.py 
    urls.py 
    \\other stuff 
main/ 
    urls.py 
    views.py 
    templates/ 
    base.html 
    index.html 
    \\other stuff 
manage.py 

在測試我的應用程序,我有以下錯誤:

Error during template rendering 

In template /app/main/templates/base.html, error at line 32 
Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 

這裏是涉及錯誤base.html的代碼:

{% load i18n %} 
\\some stuff 

<a class="brand" href="{% url 'index' %}">{{ site.name }}</a> <--- this line is the error 
main/urls.py

我:

urlpatterns = patterns('', 
    (r'^$', TemplateView.as_view(template_name="index.html")), 
) 
myapp/urls.py

我:

urlpatterns = patterns('', 
         url(r'', include('main.urls'), name='index'), 

) 

有人可以告訴我什麼,我做錯了,爲什麼叫'index'無反匹配?

+0

我真的不知道該怎麼做,我想提出

在主/ urls.py

「main」文件夾中的所有主頁邏輯以及「myapp」文件夾內的所有應用程序配置。 – Pol0nium 2013-05-01 16:41:13

+0

我以前的評論很愚蠢,請查看答案。 – Alexandre 2013-05-01 16:42:53

回答

3

name適用於單視圖,它不會與include聲明一起使用。試試這個方法:

urlpatterns = patterns('', 
         url(r'^$', TemplateView.as_view(template_name="index.html"), 
          name='index'), 
) 
在MYAPP

/urls.py:

urlpatterns = patterns('', 
         url(r'', include('main.urls')), 
) 
+0

感謝您的anwser,但它給我一個語法錯誤。 urlpatterns的=模式( '', URL(R '^賬戶/',包括( 'registration.urls')), URL(R '',包括( 'main.urls')), URL( (包括('django.contrib.auth.urls')), ) – Pol0nium 2013-05-01 16:51:34

+0

恐怕我不能只有用這些信息才能幫助你。這是'main.urls'中的所有東西嗎?這是錯誤所說的一切嗎? – 2013-05-01 16:58:00

+0

你可能會遇到正則表達式'r'''的問題請注意,當django試圖通過它的url發現視圖時,它會從上到下檢查你的根urls.py。如果在中間添加該正則表達式,它將首先檢查您的'main.urls'中的url。所以你可能與其他url文件有衝突。 – 2013-05-01 17:00:34