Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
¿Las variables de plantilla no se actualizan después de la redirección en Django?

Estoy creando una aplicación Django simple en la que quiero hacer un análisis cuando el usuario hace clic en el botón en la interfaz.

Tengo una variable de plantilla {{ parsing }} que estoy usando dentro de index.html para deshabilitar el botón de análisis cuando el usuario hace clic en él

 <div class="btn-group mr-2" role="group" aria-label="Parsing group"> <button class="btn btn-dark btn-lg" id="parseButton" {% if parsing %} disabled {% endif %}> <i class="fa fa-terminal gradient-text"></i> <span class="gradient-text">| Parse</span> </button> </div>

A continuación, lo que hago es el método JQuery que envía una solicitud ajax a mi backend para inicializar las variables para el análisis y el método de views.py devuelve la redirección a la misma página (index.html).

 $('#parseButton').click(function () { $.ajax({ type: 'POST', url: 'initialize_parsing/', headers: {"X-CSRFToken": $.cookie("csrftoken")}, data: {} });

Entonces mi views.py:

 def initialize_before_parsing(request): if request.method == 'POST': frontendTracker = FrontendTracker() frontendTracker.progress = 0 frontendTracker.parsing = True return redirect("index") class IndexView(TemplateView): template_name = 'index.html' def get_context_data(self, **kwargs): frontendTracker = FrontendTracker() context = super(IndexView, self).get_context_data(**kwargs) context["showAnnotation"] = frontendTracker.showAnnotationButton context["parsing"] = frontendTracker.parsing context["progress"] = frontendTracker.progress return context

y urls.py

 urlpatterns = [ path('', IndexView.as_view(), name="index"), path("initialize_parsing/", initialize_before_parsing, name="initialize_before_parsing"), ]

Finalmente, lo que me molesta es que cuando envío esa solicitud ajax y todo funciona bien cuando mi página está siendo redirigida, la variable de plantilla {{progres}} no cambia ni ninguna otra hasta que actualice. Actualizar con js cuando ajax tiene éxito no es algo que quiera hacer porque tengo otros métodos dentro de js que quiero ejecutar después de esa solicitud de ajax y eso restablecerá mi código js. ¿Cómo se puede lograr cambiar el valor de la variable de análisis sin actualizar?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tiene estado en 2 lugares: en el navegador y en el servidor.

Cuando carga una página desde el servidor, analiza el estado en el servidor y completa la plantilla en consecuencia. Cuando realiza la llamada AJAX, pasa el estado al servidor, pero no hace nada con el estado de la página en el navegador. En una recarga posterior, verá el cambio reflejado en el navegador porque pasó ese estado a través de la plantilla nuevamente.

No sé mucho sobre FrontendTracker o su problema específico, por lo que no sé cuál es la mejor solución. Una solución es agregar un .done(function( data ) { /* your code */ }) a la llamada $.ajax y luego manipular el contenido de la página para reflejar cómo desea que cambie la página. Sin embargo, parece que tiene algún tipo de valor de progress , por lo que es probable que deba realizar llamadas AJAX posteriores para obtener actualizaciones del servidor para valores actualizados de eso.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda