2014-09-12 3 views
0

я использовать 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: «ajax_page» не является зарегистрированными именами

Я хочу, чтобы получить приложение с динамической ссылкой/dffr/{some_text}/в этом urls.py Почему я должен создать и зарегистрировать новое пространство имен и создать новый urls.py для этой задачи?

ответ

3

Все, что вам нужно будет сделать, это следующий:

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

Функция URL относится к вашим зарегистрированным именам URL-адреса, а не имя ваших взглядов.

Это объясняется в документации шаблона URL тега Джанго: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#url

+1

справа, за исключением того, имя URL является «ajax_page». –

+0

Yeap, вы правы. –

+0

Это тоже не сработало. Обратный для 'dffr' с аргументами '()' и аргументами ключевого слова '{' page_name ':' some_page_name '}' не найден. 0 образцов (ы): [] – bdhvevhvonof

Смежные вопросы