Django как передать модель в javascript и вывести ее на шаблон
Я пытаюсь передать модель Django в шаблон с помощью javascript. Я не могу отфильтровать или сделать что-либо с QuerySet после того, как я заставил javascript прочитать его и передать шаблону.
Мой views.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})
my models.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)
Мой файл 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>
Результат, который я получаю через 2 секунды:
2 секунды <QuerySet [<ChatStream: Объект ChatStream (31)>, <ChatStream: объект ChatStream (32)>]>объект lastEntryChatStream (31)
.
Вместо того, чтобы показать "<QuerySet [<ChatStream: объект ChatStream (31)>....] " Как показать текст внутри модели с именем ChatStream?...
Я пробовал:
<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>
Но выше ничего не отображается.
Я также пробовал
<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>
но фильтрация в последнюю очередь выдает ошибку, которую я не могу отрицательно индексировать (и у меня запущена последняя версия Django).
Огромное спасибо
ChatStream.objects.filter(...)
возвращает QuerySet, который является списком объектов модели ChatStream, а не одним объектом модели ChatStream.
Если вы хотите получить один объект модели ChatStream, используйте
m = ChatStream.objects.get(name=visitor_ip_address(request))