tutorial tarantino pelicula descargar cantante django

tarantino - Etiqueta de plantilla de Django: ¿Cómo enviar next_page en{url auth_logout}?



django tutorial (4)

Tengo un urls.py con esta línea:

url(r''^logout/$'', ''django.contrib.auth.views.logout'', name="auth_logout"),

En mi etiqueta de plantilla tengo esta línea:

<a href="{% url auth_logout %}">Logout</a>

Ahora, me gustaría agregar el parámetro next_page a la url templatetag, pero no puedo hacer que funcione. He intentado esto:

{% url auth_logout request.path %}"

...y esto:

{% url auth_logout request,request.path %}

Pero ninguno de ellos funciona. ¿Cómo puedo proporcionar la función con el parámetro opcional next_page usando el url templatetag?

¡Gracias!


Dos cosas:

  1. django.contrib.auth.views.logout () toma una next_page opcional que no está proporcionando
  2. url templatetag tiene argumentos separados por comas

Entonces, primero modifique su url para aceptar next_page Su URLConf necesita modificaciones para pasar en la página siguiente, algo como esto para un redireccionamiento codificado:

url(r''^logout/$'', ''django.contrib.auth.views.logout'', {''next_page'': ''/''}, name=''auth_logout''),

y un resultado parametrizado:

url(r''^logout/(?P<next_page>.*)/$'', ''django.contrib.auth.views.logout'', name=''auth_logout_next''),

Y luego modifica tu plantilla para pasar en la siguiente_página

<a href="{% url auth_logout_next /some/location %}">Logout</a>


Para lo que vale, uso esto:

<a href="{% url auth_logout %}?next=/">Logout</a>


Sander Smits tiene la solución más fácil. En su caso use:

<a href="{% url "auth_logout" %}?next={{ request.path|urlencode }}">Logout</a>

Y en un caso más general, usar:

<a href="{% url "auth_logout" %}?next={% url "my_url" my_params |urlencode %}">Logout</a>


Si alguien quiere dar un enlace HTML a través del error de validación views.py con mark_safe y las traducciones.

Utilicé esta parte para cerrar la sesión del usuario y luego enviarlo a la página de recortura de contraseña.

mark_safe(_("Error message") + ''<a href="'' + reverse(''logout'') + ''?next='' + reverse(''password_recover'') + ''">'' + ugettext("Forgot password?") + ''</a>'')