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

229
Vistas
Django: muestra Json o Httpresponse en la plantilla

Tengo algo así en views.py:

 return JsonResponse({'foo': 'bar'})

¿Cómo mostraría "barra" en la plantilla? Algo como:

 <h1 id="demo"></h1> <script> document.getElementById("demo").innerHTML = ?JsonResponse?; </script>

o podría hacerse con respuesta http?

 return HttpResponse("Bar")

y HTML:

 <h1 id="demo"></h1> <script> document.getElementById("demo").innerHTML = ?HttpResponse?; </script>
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Está bien. Supongamos que tiene una url /yourURL conectada a una función de vista. Llamemos a esta función índice:

 from django.shortcuts import render def index(request): data = {foo:'bar'} render(request,'path/to/yourTemplate.html',data)

Uso render como atajo. En yourTemplate.html, puede acceder a los datos como {{foo}} en cualquier lugar. Para enviar objetos json a la plantilla sin renderizar, considere la siguiente plantilla (yourTemplate.html):

 <div id='initialData'>{{foo}}</div> <div id='jsondata'></div>

Necesita una nueva vista y una solicitud ajax para obtener información de ella. Puede hacer esto en la misma vista de índice, o puede crear una nueva URL y una vista asociada. Usemos la segunda opción. Es así, construyes una nueva URL /yourURL/download conectada a una vista de download (views.py):

 def download(request): data = {foo2:'bar2'} JsonResponse(data)

Luego, necesita una solicitud ajax para llamar a esta vista y escribir la respuesta en el div en caso de éxito (yourTemplate.html):

 <script> $.ajax({ url: "/yourURL/download", type: 'get', success: function (data) { alert("Success"); var div = document.getElementById('jsondata'); div.innerHTML = div.innerHTML + data.foo; } }); </script>

¡Voila! Tendrá tanto bar como bar2 en su pantalla. Para obtener más detalles, necesita un botón asociado con la llamada ajax, para que pueda ver que la página en realidad no se vuelve a mostrar con JsonResponse.

about 4 years ago · Santiago Trujillo 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