我使用Django 1.8
urls.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'app.views.index', name='index'),
url(r'^login/$', 'app.views.login', name='login'),
url(r'^logout/$', 'app.views.logout', name='logout'),
url(r'^main/$', 'app.views.main', { 'templatename': 'main.html' }, name="main"),
url(r'^dffr/(?P<page_name>\w+)/$', 'app.views.ajax', name="ajax_page")
)
views.py
@login_required
def ajax(request, page_name, **kwargs):
# some random context
...
return HttpResponse(return_str)
main.html中
...
{% url 'ajax_page:page_name' %}
...
它让我得到异常类型:NoReverseMatch: &#39; ajax_page&#39;不是注册名称空间
我想在这个urls.py中使用动态链接/ dffr / {some_text} /获取应用 为什么我必须创建并注册新的命名空间并为此任务创建新的urls.py?
答案 0 :(得分:3)
您需要做的就是:
...
{% url 'ajax_page' page_name='some_page_name' %}
...
网址功能是指您注册的网址名称,而不是您的观看名称。
Django url模板标签文档中解释了这一点:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#url