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

419
Vistas
usando etiquetas de plantilla de Django en respuesta a ajax

Uso Ajax para actualizar una lista de objetos, digamos cada vez que se hace clic en un botón. Pero quiero usar etiquetas de plantilla de Django para generar cada elemento de la lista. El problema es que tengo que enviar un JsonResponse a JavaScript, pero allí no puedo usar estas etiquetas.

Tengo que enviar atributos de objeto como json. y estoy atascado con html simple en Ajax:

 ... success: function (json) { if (json.new_messages.length) { for (let m of json.new_messages) { $('#messages-list').append("<li>"+m.sender_name+" "+m.content+"</li>"); } } },
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Una forma que encontré para resolver este problema es renderizar la plantilla primero y luego enviar el texto resultante como respuesta.

En un archivo de plantilla, solo incluya el html que debe usarse en Ajax. Sin etiquetas html adicionales. Aquí puede usar todas las etiquetas y filtros de Django. Por ejemplo:

 {% for m in messages_list %} <li> <b>{{ m.sender.profile.get_short_name }}</b> ({{ m.send_time|time:"H:i" }}): {{ m.content }} {% if m.sender == user %} {% if m.is_seen %} <b><small>✓✓</small></b> {% else %} <b><small>✓</small></b> {% endif %} {% endif %} </li> {% empty %} <li>No messages here yet...</li> {% endfor %}

En la vista, usando una función llamada render_to_string , represente la plantilla y envíela en el contexto de la respuesta json:

 response = render_to_string("just_list.html", context={"messages_list": new_messages}) return JsonResponse({"messages": response})

Entonces se puede usar fácilmente en Ajax:

 ... success: function (json) { $('#messages-list').append(json.messages); },
over 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