2017-09-06 31 views
0

我有我的主要網址:Django的:模板網址標記錯誤的目標

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'', include('scoring.urls', namespace='scoring')), 
] 

,並在我的應用程序網址:

urlpatterns = [ 
    url(r'scoring/(?P<query_id>[0-9]+)/$', views.get_table_data, name='table_api'), 
    url(r'^scoring/$', views.index, name='index'), 
] 

,並在我的模板:

<li><a href="{% url 'scoring:index' %}">Scoring</a></li> 

{% url 'scoring:index' %}生成的是localhost/而不是localhost/scoring。爲什麼?

回答

2

起初,你可以在主urls.py文件中添加^scoring前綴,而不是你的得分網址到處寫它:

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^scoring/', include('scoring.urls', namespace='scoring')), 
] 

然後在你的得分urls.py確保添加app_name

app_name = 'scoring' 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^(?P<query_id>[0-9]+)/$', views.get_table_data, name='table_api'), 
] 

(請注意,我刪除的URL模式的scoring前綴)。

現在,正如您添加了app_name,模板中的反轉應該按預期工作。

+0

我曾經這樣做過,但把它改成了這個,因爲我想在同一個應用中有'/ recent' -site。添加app_name不能解決它。 –

+0

@ J.B。在'INSTALLED_APPS'中註冊了'得分'嗎? – wencakisa

+0

是的,就像INSTALLED_APPS = ['打分',...] –