2014-09-12 36 views
0

我使用Django 1.8Django的:是不是註冊名稱空間

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: 「ajax_page」不是已註冊的命名空間

我想用動態鏈接/ dffr/{} SOME_TEXT應用程序/在這個urls.py 爲什麼我必須創建並註冊新的命名空間,創造新的urls.py爲了這個任務?

回答

3

所有你需要做的是:

... 
{% url 'ajax_page' page_name='some_page_name' %} 
... 

的URL功能是指註冊網址的名稱,你的觀點不是名稱。

這Django的網址模板標籤文檔中解釋說:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#url

+1

權,除URL名稱是 「ajax_page」。 – 2014-09-12 20:49:10

+0

Yeap,你說得對。 – 2014-09-12 20:49:54

+0

這不起作用。未找到參數'()'和關鍵字參數'{'page_name':'some_page_name'}'的'dffr'反向。 0模式嘗試:[] – bdhvevhvonof 2014-09-12 20:49:53

相關問題