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

232
Visualizações
Django, ¿cómo enviamos un modelo a javascript y lo representamos en una plantilla?

Estoy tratando de pasar un modelo de Django a una plantilla usando javascript. Parece que no puedo filtrar ni hacer nada con QuerySet una vez que obtengo el javascript para leerlo y pasarlo a la plantilla.

Mis vistas.py:

 def displayDict(request): m = ChatStream.objects.filter(name = visitor_ip_address(request)) last = m.latest('name') return render(request, 'chatStream.html', {"chat": m, "last": last})

mis modelos.py:

 class ChatStream(models.Model): bot = models.TextField() user = models.TextField() name = models.CharField(max_length=100, null=True) created_date = models.DateTimeField(auto_now_add=True)

Mi archivo chatStream.html:

 <p id="demo2">I will display when two seconds have passed.</p> <script> var data = "{{chat}}"; var lastEntry = "{{last}}" } setTimeout(myTimeout1, 2000) function myTimeout2() { document.getElementById("demo2").innerHTML = "2 seconds " + data + "lastEntry" + lastEntry; } </script>

El resultado que obtengo después de 2 segundos:

2 segundos <QuerySet [<ChatStream: ChatStream objeto (31)>, <ChatStream: ChatStream objeto (32)>]>lastEntryChatStream objeto (31)

En lugar de mostrar "<QuerySet [<ChatStream: objeto ChatStream (31)>....] " ¿Cómo muestro el texto dentro del modelo llamado ChatStream?...

He intentado:

 <p id="demo2">I will display when two seconds have passed.</p> <script> var data = "{{chat.user}}"; var lastEntry = "{{last.user}}" } setTimeout(myTimeout1, 2000) function myTimeout2() { document.getElementById("demo2").innerHTML = "2 seconds " + data + "lastEntry" + lastEntry; } </script>

Pero lo anterior no muestra nada.

yo también he intentado

 <p id="demo2">I will display when two seconds have passed.</p> <script> var data = "{{chat | last }}"; var lastEntry = "{{last}}" } setTimeout(myTimeout1, 2000) function myTimeout2() { document.getElementById("demo2").innerHTML = "2 seconds " + data + "lastEntry" + lastEntry; } </script>

pero filtrar en último arroja un error que no puedo indexar negativamente (y tengo la última versión de Django en ejecución).

Muchas gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

ChatStream.objects.filter(...) devuelve un QuerySet que es una lista de objetos del modelo ChatStream, no un solo objeto del modelo ChatStream.

Si desea recuperar un solo objeto del modelo ChatStream, use

 m = ChatStream.objects.get(name=visitor_ip_address(request))
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