Django, параметр name в urlpatterns

Я следую учебнику, где мои urlpatterns:

urlpatterns = patterns('',
    url(r'^passwords/$', PasswordListView.as_view(), name='passwords_api_root'),
    url(r'^passwords/(?P<id>[0-9]+)$', PasswordInstanceView.as_view(), name='passwords_api_instance'),
    ...other urls here...,
)

на PasswordListView и PasswordInstanceView предполагается, что это представления на основе классов. Я не мог понять, что означает это"!--8-->имя

1 ответов


нет. Просто django дает вам возможность назвать ваши представления, если вам нужно обратиться к ним из вашего кода или ваших шаблонов. Это полезно и полезно, потому что вы избегаете жесткого кодирования URL-адресов в коде или внутри шаблонов. Даже если вы измените фактический url-адрес, вам не нужно ничего менять, так как вы будете ссылаться на них по имени.

e.x с видами:

from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse

def myview(request):
    passwords_url = reverse('passwords_api_root')  # this returns the string `/passwords/`
    return HttpResponseRedirect(passwords_url)

больше здесь.

Эл.х. в шаблоны

<p>Please go <a href="{% url 'passwords_api_root' %}">here</a></p>

больше здесь.