Django在app特定网址的模板中使用URL标记?

时间:2016-08-29 18:09:38

标签: python django url

我的项目urls.py

中有以下网址
urlpatterns = i18n_patterns(
    url(r'^register/', include('register.urls')),
)

所以我在注册应用中保留了网址,因此urls.py应用中的register看起来像这样:

urlpatterns = patterns(
    url(r'^test/$', views.Test, name="register_test"),
)

所以我有一个位于注册应用程序之外的模板,位于项目的根目录中,我正在尝试使用上面这样的URL:

<a href="{% url 'register_test' %}"/>Test</a>

但是我收到以下错误:

NoReverseMatch at /en/
Reverse for 'register_test' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

2 个答案:

答案 0 :(得分:1)

您是否尝试过:<a href="{% url 'register:register_test' %}"/>Test</a>? 您可能希望首先为寄存器URL指定名称空间:

urls.py

urlpatterns = i18n_patterns(
    url(r'^register/', include('register.urls', namespace='register'),
)
注册app中的

urls.py:

urlpatterns = patterns(
    'register.views',
    url(r'^test/$', 'Test', name="register_test"),
)

关于url namespace的Django doc。

答案 1 :(得分:0)

项目urls.py

urlpatterns = i18n_patterns(
    url(r'^register/', include('register.urls', namespace="register")),
)

app urls.py

urlpatterns = patterns(
    url(r'^test/$', views.Test, name="register_test"),
)

template.html

<a href="{% url 'register:register_test' %}"/>Test</a>