Example #1
0
def home(request):
    posts = Article.objects.all()  #获取全部的Article对象
    paginator = Paginator(posts, 4)  #每页显示4篇文章
    #print(request)
    page = request.GET.get('page')
    if page != None:
        try:
            '''try:
                current_page = abs(int(page))
            except (ValueError, TypeError):
                raise Http404
            if current_page <= paginator._get_num_pages():
                post_list = paginator.page(current_page)
            else:
                raise Http404'''
            current_page = int(page)
            if current_page <= paginator._get_num_pages():
                post_list = paginator.page(current_page)
            else:
                raise Http404
        except (EmptyPage, ValueError, TypeError):
            raise Http404
    else:
        post_list = paginator.page(1)
    return render(request, 'home.html', {'post_list': post_list})
Example #2
0
def blog(request, current_paging_number, category):
    if current_paging_number == '':
        current_paging_number = '1'
    try:
        page = Paginator(Gallery.objects.filter(Q(detail__contains=request.GET['q']) |
                                                Q(title__contains=request.GET['q'])).
                         order_by('-created_date'), 5)
    except MultiValueDictKeyError:
        if category == '':
            page = Paginator(Gallery.objects.order_by('-created_date'), 5)
        else:
            page = Paginator(Gallery.objects.filter(categorys=category).order_by('-created_date'), 5)
    try:
        # 한번에 표시할 페이지 수
        page_count = 5
        # 최대 페이지 수
        page_max_count = page._get_num_pages()
        get_gallery = page
        get_image = Image.objects.filter(thumbnail='True')
        get_category = Categorys.objects.all()
        if (page_max_count-1) // page_count == (int(current_paging_number)-1) // page_count:
            page_loop = ((page_max_count-1) % page_count)+1
        else:
            page_loop = page_count
        return render(request, 'cluster/blog.html', {
            'blog_list': get_gallery.page(current_paging_number),
            'image_list': get_image,
            'paging_number': current_paging_number,
            'page_loop': page_loop,
            'page_size': page_count,
            'page_max_count': page_max_count,
            'category_list': get_category,
            'category': category,
        })
    except:
        return redirect('/blog/')
Example #3
0
def _local_word(app, page_size=20, _page=1, q=''):

    words = Word.objects.filter(app=app).order_by('pk')
    if q:
        words = words.filter(name__icontains=q)
    paginator = Paginator(words, page_size)
    try:
        words = paginator.page(_page)
    except PageNotAnInteger:
        _page = 1
        words = paginator.page(_page)
    except EmptyPage:
        _page = paginator.num_pages
        words = paginator.page(_page)

    translations = {}
    langs = []
    localwords = LocalizedWord.objects.filter(app=app, word__in=words).order_by('id')
    for lword in localwords:
        key = lword.word_id
        if lword.lang not in langs:
            langs.append(lword.lang)
        if not translations.get(key, False):
            translations[key] = {}

        translations[key][lword.lang] = LocalizedWordSerializer(lword).data

    word_serializer = WordSerializer(words, many=True)
    # page = paginator.page()
    return Response({'langs': langs, 'words': word_serializer.data, 'translations': translations,
                     'total_count': paginator.count, 'start_index': words.start_index(),
                     'end_index': words.end_index(), 'has_previous': words.has_previous(), 'page_size': paginator._get_num_pages(),
                     'has_next': words.has_next(), 'page_size': int(page_size or 20), 'page': _page})