Skip to content

Commit 9719c27

Browse files
committed
修复分类目录等分页错误bug
1 parent 62bcf35 commit 9719c27

File tree

4 files changed

+69
-4
lines changed

4 files changed

+69
-4
lines changed

blog/templatetags/blog_tags.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515

1616
from django import template
1717
from django.conf import settings
18-
import markdown2
1918
from django.template.defaultfilters import stringfilter
2019
from django.utils.safestring import mark_safe
2120
import random
21+
from django.core.urlresolvers import reverse
2222
from blog.models import Article, Category, Tag, Links
2323
from django.utils.encoding import force_text
2424
import hashlib
@@ -146,6 +146,47 @@ def load_article_metas(article, user):
146146
}
147147

148148

149+
@register.inclusion_tag('blog/tags/article_pagination.html')
150+
def load_pagination_info(page_obj, page_type, tag_name):
151+
previous_url = ''
152+
next_url = ''
153+
if page_type == '':
154+
if page_obj.has_next():
155+
next_number = page_obj.next_page_number()
156+
next_url = reverse('blog:index_page', kwargs={'page': next_number})
157+
if page_obj.has_previous():
158+
previous_number = page_obj.previous_page_number()
159+
previous_url = reverse('blog:index_page', kwargs={'page': previous_number})
160+
if page_type == '分类标签归档':
161+
if page_obj.has_next():
162+
next_number = page_obj.next_page_number()
163+
next_url = reverse('blog:tag_detail_page', kwargs={'page': next_number, 'tag_name': tag_name})
164+
if page_obj.has_previous():
165+
previous_number = page_obj.previous_page_number()
166+
previous_url = reverse('blog:tag_detail_page', kwargs={'page': previous_number, 'tag_name': tag_name})
167+
if page_type == '作者文章归档':
168+
if page_obj.has_next():
169+
next_number = page_obj.next_page_number()
170+
next_url = reverse('blog:author_detail_page', kwargs={'page': next_number, 'author_name': tag_name})
171+
if page_obj.has_previous():
172+
previous_number = page_obj.previous_page_number()
173+
previous_url = reverse('blog:author_detail_page', kwargs={'page': previous_number, 'author_name': tag_name})
174+
175+
if page_type == '分类目录归档':
176+
if page_obj.has_next():
177+
next_number = page_obj.next_page_number()
178+
next_url = reverse('blog:category_detail_page', kwargs={'page': next_number, 'category_name': tag_name})
179+
if page_obj.has_previous():
180+
previous_number = page_obj.previous_page_number()
181+
previous_url = reverse('blog:category_detail_page', kwargs={'page': previous_number, 'category_name': tag_name})
182+
183+
return {
184+
'previous_url': previous_url,
185+
'next_url': next_url,
186+
'page_obj':page_obj
187+
}
188+
189+
149190
"""
150191
@register.inclusion_tag('nav.html')
151192
def load_nav_info():

blog/urls.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def key_prefixer(request):
3030
urlpatterns = [
3131
url(r'^$', views.IndexView.as_view(), name='index'),
3232
url(r'^page/(?P<page>\d+)$', views.IndexView.as_view(), name='index_page'),
33+
3334
url(r'^article/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<article_id>\d+)-(?P<slug>\S+).html$',
3435
# cache_page(60 * 60 * 10, key_prefix="blogdetail")(views.ArticleDetailView.as_view()),
3536
views.ArticleDetailView.as_view(),
@@ -38,11 +39,20 @@ def key_prefixer(request):
3839
url(r'^blogpage/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<page_id>\d+)-(?P<slug>[\w-]+).html$',
3940
views.ArticleDetailView.as_view(),
4041
name='pagedetail'),
42+
4143
url(r'^category/(?P<category_name>[\w-]+).html$', views.CategoryDetailView.as_view(), name='category_detail'),
44+
url(r'^category/(?P<category_name>[\w-]+)/(?P<page>\d+).html$', views.CategoryDetailView.as_view(),
45+
name='category_detail_page'),
4246
# url(r'^category/(?P<category_name>[\w-]+)/(?P<page>\d+).html$', views.CategoryDetailView.as_view(),
4347
# name='category_detail'),
48+
4449
url(r'^author/(?P<author_name>\w+).html$', views.AuthorDetailView.as_view(), name='author_detail'),
50+
url(r'^author/(?P<author_name>\w+)/(?P<page>\d+).html$', views.AuthorDetailView.as_view(),
51+
name='author_detail_page'),
52+
4553
url(r'^tag/(?P<tag_name>.+).html$', views.TagDetailView.as_view(), name='tag_detail'),
54+
url(r'^tag/(?P<tag_name>.+)/(?P<page>\d+).html$', views.TagDetailView.as_view(), name='tag_detail_page'),
55+
4656
url(r'^upload', views.fileupload, name='upload'),
4757
url(r'^refresh', views.refresh_memcache, name='refresh')
4858
]

templates/blog/article_index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<meta property="og:site_name" content="{{ SITE_NAME }}"/>
1919
{% endblock %}
2020
{% block content %}
21-
2221
<div id="primary" class="site-content">
2322
<div id="content" role="main">
2423
{% if page_type and tag_name %}
@@ -32,7 +31,8 @@ <h1 class="archive-title">{{ page_type }}:<span>{{ tag_name }}</span></h1>
3231
{% load_article_detail article True user %}
3332
{% endfor %}
3433
{% if is_paginated %}
35-
<nav id="nav-below" class="navigation" role="navigation">
34+
{% load_pagination_info page_obj page_type tag_name %}
35+
{% comment %} <nav id="nav-below" class="navigation" role="navigation">
3636
<h3 class="assistive-text">文章导航</h3>
3737
{% if page_obj.has_next %}
3838
<div class="nav-previous"><a
@@ -45,7 +45,7 @@ <h3 class="assistive-text">文章导航</h3>
4545
class="meta-nav"></span></a>
4646
</div>
4747
{% endif %}
48-
</nav><!-- .navigation -->
48+
</nav><!-- .navigation -->{% endcomment %}
4949

5050
{% endif %}
5151
</div><!-- #content -->
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<nav id="nav-below" class="navigation" role="navigation">
2+
<h3 class="assistive-text">文章导航</h3>
3+
{% if page_obj.has_next and next_url%}
4+
<div class="nav-previous"><a
5+
href="{{ next_url }}"><span
6+
class="meta-nav">&larr;</span> 早期文章</a></div>
7+
{% endif %}
8+
{% if page_obj.has_previous and previous_url %}
9+
<div class="nav-next"><a href="{{ previous_url }}">较新文章
10+
<span
11+
class="meta-nav"></span></a>
12+
</div>
13+
{% endif %}
14+
</nav><!-- .navigation -->

0 commit comments

Comments
 (0)