2012-10-10 16 views
30

estoy siguiendo un tutorial donde mis urlpatterns son:Django, el parámetro de nombre en 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..., 
) 

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

Respuesta

39

No. Simplemente es que django le da la opción de nombrar sus vistas en caso de que necesite consultarlas desde su código o sus 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 here.

e.x. en las plantillas

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

Más here.

+0

en views.py, 'resolve_url ('passwords_api_root', args)' trabajado para mí – BeatriceThalo

Cuestiones relacionadas