| 
                
               | 
              
                
               | 
              
                @@ -3,13 +3,15 @@ 
               | 
            
            
            
              | 
                3
               | 
              
                3
               | 
              
                 from django.db.models.query import QuerySet 
               | 
            
            
            
              | 
                4
               | 
              
                4
               | 
              
                  
               | 
            
            
            
              | 
                5
               | 
              
                5
               | 
              
                  
               | 
            
            
            
              | 
                6
               | 
              
                
               | 
              
                -def pagination(queryset, page, num=10): 
               | 
            
            
            
              | 
                
               | 
              
                6
               | 
              
                +def pagination(queryset, page, num=10, strict=False): 
               | 
            
            
            
              | 
                7
               | 
              
                7
               | 
              
                     """ 
               | 
            
            
            
              | 
                8
               | 
              
                
               | 
              
                -    DIY Pagination Funciton 
               | 
            
            
            
              | 
                
               | 
              
                8
               | 
              
                +    Simple Pagination Funciton 
               | 
            
            
            
              | 
                9
               | 
              
                9
               | 
              
                     :param queryset: 
               | 
            
            
            
              | 
                10
               | 
              
                10
               | 
              
                     :param page: 
               | 
            
            
            
              | 
                11
               | 
              
                
               | 
              
                -    :param num: the number of query for one page 
               | 
            
            
            
              | 
                12
               | 
              
                
               | 
              
                -    :return: the query of the page, the number of query left after the page 
               | 
            
            
            
              | 
                
               | 
              
                11
               | 
              
                +    :param num: number per page 
               | 
            
            
            
              | 
                
               | 
              
                12
               | 
              
                +    :param strict: strict left number or not 
               | 
            
            
            
              | 
                
               | 
              
                13
               | 
              
                +    :return: matched query, left number(default not strict) 
               | 
            
            
            
              | 
                13
               | 
              
                14
               | 
              
                     """ 
               | 
            
            
            
              | 
                14
               | 
              
                
               | 
              
                -    start, end, total = num * (page - 1), num * page, queryset.count() if isinstance(queryset, QuerySet) else len(queryset) 
               | 
            
            
            
              | 
                15
               | 
              
                
               | 
              
                -    return queryset[start: end], max(total - end, 0) 
               | 
            
            
            
              | 
                
               | 
              
                15
               | 
              
                +    start, end = num * (page - 1), num * page 
               | 
            
            
            
              | 
                
               | 
              
                16
               | 
              
                +    return queryset[start: end], max(queryset.count() if isinstance(queryset, QuerySet) else len(queryset) - end, 
               | 
            
            
            
              | 
                
               | 
              
                17
               | 
              
                +                                     0) if strict else len(queryset[end: end + 1]) 
               |