Живые данные в Django - Ajax

Моя цель - добавить данные для отображения на экране без обновления страницы. В этом коде я использую un setInterval, но мне это не нравится. Я хочу использовать метод, который обновляет данные только когда я добавляю новые данные с помощью администратора Django.

JavaScript

    let tab = document.getElementById('tabella');

    setInterval(function() {
        fetch("{% url 'ajax' %}")
        .then(response => response.json())
        .then(result => {
            tab.innerHTML = '';
            for(let i in result.users) {
                var text = `<tr><td>${result.users[i].nome}</td>
                    <td>${result.users[i].cognome}</td>
                    <td>${result.users[i].telefono}</td>
                    <td>${result.users[i].email}</td></tr>`;
                tab.innerHTML += text;
            }
        });
    }, 1000)

views.py

def Home(request):
    return render(request, 'index.html')

def Ajax(request):
    queryset = Utenti.objects.all()
    return JsonResponse({'users':list(queryset.values())})

urls.py

from django.urls import path
from .views import Home, Ajax

urlpatterns = [
    path('', Home, name='index'),
    path('ajax', Ajax, name='ajax'),
]
Вернуться на верх