Django에서 검색을 수행하지 않는 한 약 300 개의 개체를 반환하는 일반 목록보기가 있습니다.Django에서 쿼리 세트의 하위 집합 만 처리하고 원래 쿼리 세트를 반환합니다.
개체가 10 개만 표시되도록 페이지 매김을 설정했습니다.
그래서 데이터베이스를 쿼리 한 다음 개체를 반복하고 처리 한 다음 추가 값을 표시 전에 추가합니다. 모든 300 개의 객체가 처리를 완료하고 처리 후 페이지 매김이 수행됩니다. 그래서 성능 향상을 위해 표시 할 개체에 대해서만 처리를 수행하려고합니다.
제가
이제 I 처리 할 페이지 3 페이지 2, 21-30 페이지 (1), 11-20 0-10 대한 처리되어야 검색어 세트 내의 오브젝트 등의 인덱스를 계산 표시 범위에있는 객체 만 전체 queryset을 반환합니다 (그래서 장르별보기가 예상대로 작동 함).
처음에 나는 시도 :for object in queryset[slice_start:slice_end] :
# process things here
return queryset
그러나 슬라이스는 새로운 검색어 세트를 반환하는 것, 그리고 원래의 검색어 객체는 계산 된 값 중 하나를 필요가 없습니다. 이제
index = -1
for object in queryset:
index += 1
if index < slice_start or index > slice_end : continue
# process things here
return queryset
이 작동하지만, 파이썬 오히려 해키 및 unelegant 보인다
현재 내 솔루션입니다. 더 평이한 방법이 있나요? 당신이 장고의 Paginator
클래스 (docs)를 사용하는 경우
Django의 Paginator 클래스를 사용하고 있습니까? –