2017-08-18 1 views
1

Je continue d'obtenir un NoReverseMatch dans mon modèle de base, bien que j'ai spécifié un espace de noms et que j'ai mis le nom correct.Django URL dans le modèle NoReverseMatch

Erreur:

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

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

Forum urls.py:

from django.conf.urls import url 

from forum import views 

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

De mon modèle:

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

Répondre

3

Les docs pour reverse() say Vous ne pouvez pas inverser les modèles d'URL contenant d'autres choix en utilisant |.

Dans ce cas, vous pouvez changer l'URL:

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

Cependant, il pourrait être préférable de choisir une URL unique /forums/ ou /forum/. Avoir une seule URL peut être mieux pour le référencement.

+0

Merci beaucoup! – Elian