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})
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/')
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})