Solución:
Puede agregar un next
campo a su formulario, y configúrelo en request.path
. Después de procesar su formulario, puede redirigir al valor de esta ruta.
template.html
<form method="POST">
{% csrf_token %}
{{ form }}
<input type="hidden" name="next" value="{{ request.path }}">
<button type="submit">Let's Go</button>
</form>
views.py
next = request.POST.get('next', "https://foroayuda.es/")
return HttpResponseRedirect(next)
Esto es aproximadamente lo que django.contrib.auth
hace para el formulario de inicio de sesión si no recuerdo mal.
Si pasa por una página intermedia, puede pasar el valor ‘siguiente’ a través de la cadena de consulta:
some_page.html
<a href="https://foroayuda.es/{% url"your_form_view' %}?next={{ request.path|urlencode }}">Go to my form!</a>
template.html
<form method="POST">
{% csrf_token %}
{{ form }}
<input type="hidden" name="next" value="{{ request.GET.next }}">
<button type="submit">Let's Go</button>
</form>
Puedes usar el HTTP_REFERER
valor:
return HttpResponseRedirect(request.META.get('HTTP_REFERER', "https://foroayuda.es/"))
Tenga en cuenta que esto no funcionará si el cliente inhabilitó el envío de información de referencia (por ejemplo, utilizando una ventana de navegador privada / de incógnito). En tal caso, redirigirá a /
.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)