Pregunta Django, parámetro de nombre en los patrones url


Estoy siguiendo un tutorial donde mis patrones url son:

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...,
)

los PasswordListView y PasswordInstanceView se supone que son vistas basadas en clase. No pude entender el significado de la nombre parámetro. ¿Es un parámetro predeterminado pasado a la vista?


32
2017-10-10 11:34


origen


Respuestas:


No. Es solo que django te da la opción de nombrar tus vistas en caso de que necesites consultarlas desde tu código o tus plantillas. Esta es una práctica útil y buena porque evita las URL de codificación rígida en su código o dentro de sus plantillas. Incluso si cambia la url real, no tiene que cambiar nada más, ya que se referirá a ellos por su nombre.

e.x con vistas:

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)

Más aquí.

ex. en plantillas

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

Más aquí.


42
2017-10-10 12:06