1

ミドルウェア.py

def get_perpage(self):
    try:
        self.session['perpage'] = int(self.REQUEST['perpage'])
        return self.session['perpage']
    except (KeyError, ValueError, TypeError):
        pass

    try:
        return int(self.session['perpage'])
    except (KeyError, ValueError, TypeError):
        return DEFAULT_PAGINATION

問題があります: ゼロを GET パラメーター (?perpage=0) として URL に変換したい場合、ZeroDivisionError float のゼロ除算が表示されます。perpage = 0の場合、ページネーションなしでページ上のすべてのオブジェクトを取得する必要があります。これどうやってするの?view.py には何が必要ですか?

4

1 に答える 1

0
def render(self, context):
    key = self.queryset_var.var
    value = self.queryset_var.resolve(context)
    if (self.paginate_by == None):
        paginate_by = int(context['request'].perpage)
    else:
        paginate_by = self.paginate_by.resolve(context)
    if (paginate_by == 0):          #HERE
        context['page_obj'] = value # IS 
        return u''                  #SOLUTION
    print (paginate_by)
    paginator = Paginator(value, paginate_by, self.orphans)
    try:
        page_obj = paginator.page(context['request'].page)
    except InvalidPage:
        if INVALID_PAGE_RAISES_404:
            raise Http404('Invalid page requested.  If DEBUG were set to ' +
                'False, an HTTP 404 page would have been shown instead.')
        context[key] = []
        context['invalid_page'] = True
        return u''
    if self.context_var is not None:
        context[self.context_var] = page_obj.object_list
    else:
        context[key] = page_obj.object_list 
    context['paginator'] = paginator
    context['page_obj'] = page_obj
    return u''

ビューが perpage=0 になると、ページネーションなしで純粋なオブジェクト リスト (値) をテンプレートに返します

于 2012-08-30T18:16:51.483 に答える