Solución:
Necesitas usar el reverse()
función utils.
from django.urls import reverse
# or Django < 2.0 : from django.core.urlresolvers import reverse
def myview(request):
return HttpResponseRedirect(reverse('arch-summary', args=[1945]))
Dónde args
satisface todos los argumentos en la expresión regular de su URL. También puede proporcionar argumentos con nombre pasando un diccionario.
La respuesta correcta desde Django 1.3 en adelante, donde el método de redireccionamiento implícitamente realiza una llamada inversa, es:
from django.shortcuts import redirect
def login(request):
if request.session.get('user'):
return redirect('named_url')
Una forma más concisa de escribir que la declaración if sería if request.session.get('user')
. has_key está en desuso hoy en día, y .get () devuelve Ninguno (por defecto, modificable al pasar un segundo parámetro). Entonces, combinando esto con la respuesta de Soviut:
from django.core.urlresolvers import reverse
def login(request):
if request.session.get('user'):
return HttpResponseRedirect(reverse('my-named-url'))
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)