2017-08-18 13 views
1

私は名前空間を指定して、適切な名前を付けても、NoReverseMatchをベーステンプレートに入れ続けます。テンプレート内のDjangoのURL NoReverseMatch

エラー:

Reverse for 'home' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['forum/|^forums/$']

メインurls.py

from django.conf.urls import url, include 
from django.contrib import admin 
from forum.views import main_home 

urlpatterns = [ 
    url(r'^$', main_home, name='home'), 
    url(r'^admin/', admin.site.urls), 
    url(r'^accounts/|^account/', include('accounts.urls', 
    namespace='accounts')), 
    url(r'^forum/|^forums/', include('forum.urls', namespace='forum')), 
] 

フォーラムurls.py:私のテンプレートから

from django.conf.urls import url 

from forum import views 

urlpatterns = [ 
    url(r'^$', views.home, name='home'), 
] 

<a class="nav-link" href="{% url 'forum:home' %}">Forum</a> 

答えて

3

reverse()のドキュメント|を使用して代替選択肢を含むURLパターンを逆転することはできません。この場合

、あなたはにURLを変更できます。しかし、それは、単一のURL /forums/または/forum/選択する方がよいかもしれません

url(r'^forums?/', include('forum.urls', namespace='forum')), 

。単一のURLを持つことは、SEOにとってより良いことです。

+0

ありがとうございます! – Elian