【发布时间】:2018-11-02 20:23:39
【问题描述】:
我有一个视图显示一组大约 3000 多条记录的数据(多个对象组合成一个 QuerySet。结果使用 DataTables 渲染到一个表中,但渲染时间很糟糕 - 至少 15 秒。
我深入研究了 DataTables,发现了 deferRender API 选项和 AJAX 东西。因为我之前从未使用过它,所以我想就如何处理我的特殊情况寻求指导。以下是带有 DataTables 的 views.py 和模板。
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>
【问题讨论】:
标签: ajax django python-3.x datatables