В такой ситуации опрос - это первый вариант, который мне приходит в голову. Что вы делаете, это создаете представление, которое возвращает JsonResponse
. Надеюсь, вы знаете, как вернуть объект набора запросов с помощью представления JsonResponse
. Прямо вперед, разрешите представлению возвращать Text.objects.all()
, прежде чем вам нужно будет сделать сериализуемый объект запроса. Оптимизирующим образом вы можете проверить, действительно ли изменены записи модели (таблицы), если да, то отправить только измененные записи или все записи для простоты.
предположим, что у вас есть эта структура в html
<div>
<h1>Messages<h2><br>
<div id = "msg-block">
<a></a>
</div>
</div>
с точки зрения ajax, сделайте это
function update_messages(data){
// suppose msg-block, is id of div enclosing all links, header div is sepreate
str = ""
for(var i = 0; i < data.length; i++){
str += `<a> ${data[i]} </a>`
}
$("#msg-block").html(str)
}
setInterval(function() {
$.ajax({
type: "POST",
url: "<url-to-json-view>",
data : {csrfmiddlewaretoken:document.getElementsByName('csrfmiddlewaretoken')[0].value},
success: function(data)
{
console.log("Success : ", data)
// function to update the table
update_messages(data)
},
error: function(request, status, error)
{
alert(request.responseText);
}
});
}, time-interval-in-ms)
, включите это в тег скрипта, на свою веб-страницу и в нормальном случае для извлечения данных с помощью вызова ajax.