Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

136
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!