python - template - Django, parámetro de nombre en los patrones url
ifequal django (1)
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...,
)
Se supone que PasswordListView y PasswordInstanceView son vistas basadas en clase. No pude entender el significado del parámetro de nombre . ¿Es un parámetro predeterminado pasado a la vista?
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.
ex 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 .
ex en plantillas
<p>Please go <a href="{% url ''passwords_api_root'' %}">here</a></p>
Más here .