Django нумерация страниц не работает должным образом с очень большим набором данных - PullRequest
1 голос
/ 14 марта 2019

Когда я использую нумерацию страниц с очень большим набором данных, он работает слишком медленно.Возможно я не реализую это должным образом.Пожалуйста помоги.Как сделать это быстро?Что-нибудь, что я могу изменить или реализовать так, чтобы оно работало нормально?

view.py

def display(request):
    user_list = Final.objects.all()
    searchlen= user_list.count()
    paginator = Paginator(user_list, 100)
    page = request.GET.get('page')
    users = paginator.get_page(page)
    return render(request,'displayLogs.html',{'users': users,'searchlen':searchlen})

model.py

class Final(models.Model):
    name = models.TextField(db_column='Date',primary_key=True, blank=True, null=False)  # Field name made lowercase.
    corr = models.TextField(db_column='CorrelationId', blank=True, null=True)  # Field name made lowercase.

      <tbody>
	<tr class="gradeX">
	{% for item in users %}
	<td>{{item.dat}}</td>
	<td>{{item.act}}</td>
	<td>{{item.actor}}</td>
	<td class="center">{{item.tar}}</td>
	</tr>
							
	{% endfor %}
</tbody>


<div class="pagination" style="border-style:inset;border-width:5px;padding-bottom: 5px">
	{% if users.has_previous %}

	<a class="pagination-action" href="?page=1"> <i class="fas fa-angle-double-left"></i></a>

	<a class="pagination-action" href="?page={{ users.previous_page_number}}"> <i class="fas fa-angle-left"></i></a>

	{% endif %}

	{% for num in users.paginator.page_range %}
		{% if users.number == num %}

			<span class="pagination-number pagination-current"><strong>{{ num }}</strong></span>

		{% elif num > users.number|add:'-3' and num < users.number|add:'3' %}

		<a class="pagination-number" href="?page={{ num }}">{{num}}</a>

		{% endif %}

	{% endfor %}

	{% if users.has_next %}

	<a class="pagination-action" href="?page={{ users.next_page_number }}"><i class="fas fa-angle-right"></i></a>
	<a class="pagination-action" href="?page={{ users.paginator.num_pages }}"> <i class="fas fa-angle-double-right"> </i></a>

	{% endif %}
				
	</div>
...