2012-08-25 102 views
1

middleware.pyZeroDivisionError对GET参数Django的

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 

我有一个问题:当我想转成零URL作为GET参数(?perpage = 0),它表明我ZeroDivisionError零浮动师。当perpage = 0时,我需要在没有分页的情况下在页面上获取所有对象。我怎样才能做到这一点?什么是必须在view.py?

回答

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时,它返回纯对象列表(值),而不分页到模板