Example #1
0
def show(request):
    
    #使用paginator实现分页
    limit = 10  #限制每页显示的记录数
    value = request.GET.get('text')
#     search = {""__raw__"" : {""name"":{""in"":map(re.compile,value.split('+'))}}}
    items = smzdm_fx_item.objects(name__icontains=value).limit(30).order_by('_fav_count')
#     items = smzdm_fx_item.objects(**search).limit(30)
    paginator = Paginator(items, limit) #实例化一个分页对象
    try:
        page = int(request.GET.get("page",1))
        if page < 1:
            page = 1
    except ValueError:
        page = 1    
#     page = request.GET.get('page')  #获取页码
    try:
        items = paginator.page(page)    #获取某页对应的记录
    except PageNotAnInteger :   #如果页码不是整数
        items = paginator.page(1)   #取第一页的数据
    except EmptyPage:   #如果页码太大, 没有相应记录
        items = paginator.page(paginator.num_pages) #取最后一页的记录
        
    after_range_num = 6     #页码范围
    before_range_num = 4   
    if page >= after_range_num:
        page_range = paginator.page_range[page-after_range_num:page+before_range_num]
    else:
        page_range = paginator.page_range[0:page+before_range_num]  
#     num = items.count()
    return render_to_response('item.html', {'items':items, 'num':paginator.count, 'page_range':page_range, 'value':value}, context_instance=RequestContext(request))
Example #2
0
def detail(request):
    limit = 8  #限制每页显示的记录数
    value = request.GET.get('text')
    items = smzdm_fx_item.objects(name__icontains=value).limit(30)
    after_range_num = 6     #页码范围
    before_range_num = 4 
    try:
        page = int(request.GET.get("page",1))
        if page < 1:
            page = 1
    except ValueError:
        page = 1    
    paginator = Paginator(items, limit) #实例化一个分页对象
    try:
        items = paginator.page(page)    #获取某页对应的记录
    except PageNotAnInteger :   #如果页码不是整数
        items = paginator.page(1)   #取第一页的数据
    except EmptyPage:   #如果页码太大, 没有相应记录
        items = paginator.page(paginator.num_pages) #取最后一页的记录
    if page >= after_range_num:
        page_range = paginator.page_range[page-after_range_num:page+before_range_num]
    else:
        page_range = paginator.page_range[0:page+before_range_num]  
    return render_to_response('item.html', {'items':items,'num':paginator.count, 'page_range':page_range, 'value':value}, context_instance=RequestContext(request))