Add iter_queryset method to utils.iterators module.
parent
4aef603946
commit
95845b4eda
|
@ -16,6 +16,8 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from functools import wraps, partial
|
||||
from django.core.paginator import Paginator
|
||||
|
||||
|
||||
def as_tuple(function=None, *, remove_nulls=False):
|
||||
if function is None:
|
||||
|
@ -42,3 +44,15 @@ def split_by_n(seq:str, n:int):
|
|||
while seq:
|
||||
yield seq[:n]
|
||||
seq = seq[n:]
|
||||
|
||||
|
||||
def iter_queryset(queryset, itersize:int=20):
|
||||
"""
|
||||
Util function for iterate in more efficient way
|
||||
all queryset.
|
||||
"""
|
||||
paginator = Paginator(queryset, itersize)
|
||||
for page_num in paginator.page_range:
|
||||
page = paginator.page(page_num)
|
||||
for element in page.object_list:
|
||||
yield element
|
||||
|
|
Loading…
Reference in New Issue