Tengo un modelo de Cliente en mi aplicación Django. Constantemente se agregan nuevos usuarios a este modelo en segundo plano y quiero enumerar estos clientes dinámicamente con AJAX. Pero no puedo resolverlo. ¿Cómo puedo hacer eso?
def ajax_view(request): obj = Customer.objects.filter(company=request.user.company) customers = [] for customer in obj: customers.append(customer) data = { "obj": customers } return JsonResponse(data)
html
<h3 id="status"></h3> <script> var refresh = setInterval(function() {$.ajax({ url: "{% url 'user:ajax_customer' %}", type: "GET", dataType: 'json', success: function (data) { if (data) { console.log(data); console.log(status); document.getElementById("status").innerHTML = data.obj; } } });}, 1000); </script>
Intento hacer eso pero da un error:
TypeError: el objeto de tipo Cliente no es JSON serializable
def ajax_view(request): obj = list(Customer.objects.filter(company=request.user.company).values()) return JsonResponse({'data':obj})
JQUERY
<script> var refresh = setInterval(function() {$.ajax({ url: "{% url 'user:ajax_customer' %}", type: "GET", dataType: 'json', success: function (data) { let html = '' data.data.forEach((element, index) => { html += `<tr> <td>${element.columname}</td> <td>${element.columnname}</td> <td>${element.columnname}</td> <tr>` }) $('#status').html(html) } });}, 1000); </script>
HTML
<table> <thead> <tr> <td>columname</td> <td>columnname</td> <td>columnname</td> </tr> </thead> <tbody id="status"> </tbody> </table>