Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

143
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda