У меня есть представление, в котором отображается набор данных из более чем 3000 записей (несколько объектов объединены в QuerySet. Результат отображается в таблице с использованием DataTables, но время рендеринга ужасно - не менее 15 секунд.
Я углубился в DataTables и нашел вариант API deferRender вместе с AJAX. Поскольку я никогда не использовал его раньше, я хотел бы попросить совета о том, как подходить в моем конкретном случае. Ниже приведены views.py и шаблон с DataTables..
views.py:
def index(request):
clients = Client.objects.all().prefetch_related('loan_set', 'loan_set__case_set')
return render(request, 'app/index.html',
{'clients': clients})
index.html:
<table id="case_list" class="display">
<thead>
<tr>
<td>Imię i nazwisko</td>
<td>Edycja</td>
</tr>
</thead>
<tbody>
{% for c in clients %}
<tr>
<td>{{ c.firstName }} {{ c.lastName }}</td>
{% if c.editLock %}
<td><i class="fas fa-lock fa-lg" style="color:Red" title="W edycji przez: {{ c.lockedBy }}"></i> {{ c.lockedBy }}</td>
{% else %}
<form method="post">
{% csrf_token %}
<td><a href="/edit/{{ c.pk }}" name="c_id"><i class="fas fa-pen-square fa-2x" style="color:green"></i></a></td>
</form>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function(){
$('#case_list').DataTable( {
deferRender: true
}
);
});
</script>