2017-09-06 32 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 = ['打分',...] –