diff options
author | Christian Franke <nobody@nowhere.ws> | 2011-12-30 02:19:39 +0100 |
---|---|---|
committer | Christian Franke <nobody@nowhere.ws> | 2011-12-30 02:19:59 +0100 |
commit | 5b2c404d2955599bb50635b05d9191cb4bd6e34d (patch) | |
tree | a4bca5293c8036e3e3c0efc06c7af7e1f98f86b4 /sublab_project/news | |
parent | cc2bb825e50a4de96dbdf191ccfbda9d6397feb8 (diff) |
Improve ListView for news
Diffstat (limited to 'sublab_project/news')
-rw-r--r-- | sublab_project/news/templates/news/news_list.html | 8 | ||||
-rw-r--r-- | sublab_project/news/urls.py | 5 | ||||
-rw-r--r-- | sublab_project/news/views.py | 12 |
3 files changed, 23 insertions, 2 deletions
diff --git a/sublab_project/news/templates/news/news_list.html b/sublab_project/news/templates/news/news_list.html index 6330ffb..ea46320 100644 --- a/sublab_project/news/templates/news/news_list.html +++ b/sublab_project/news/templates/news/news_list.html @@ -8,4 +8,12 @@ </h3> <p>{{ post.content_html|safe }}</p> {% endfor %} + {% if is_paginated %} + <p> + {% for page in paginator.page_range %} + <a href="?page={{ page }}">{{ page }}</a> + {% endfor %} + </p> + {% endif %} + {% endblock content %} diff --git a/sublab_project/news/urls.py b/sublab_project/news/urls.py index c26d12d..fe682ad 100644 --- a/sublab_project/news/urls.py +++ b/sublab_project/news/urls.py @@ -1,9 +1,10 @@ from django.conf.urls.defaults import patterns, include, url -from django.views.generic import ListView, DetailView +from django.views.generic import DetailView from news.models import News +from news.views import NewsListView urlpatterns = patterns('', - url(r'^$', ListView.as_view(model=News, paginate_by=8), name='news_list'), + url(r'^$', NewsListView.as_view(), name='news_list'), url(r'^news/(?P<slug>[-\w]+)/$', DetailView.as_view(model=News), name='news_detail'), ) diff --git a/sublab_project/news/views.py b/sublab_project/news/views.py index 60f00ef..ff62be5 100644 --- a/sublab_project/news/views.py +++ b/sublab_project/news/views.py @@ -1 +1,13 @@ # Create your views here. +from django.views.generic import ListView +from django.core.paginator import Paginator + +from news.models import News + +class NewsListView(ListView): + model = News + paginate_by = 8 + + def get_paginator(self, queryset, per_page, **kwargs): + kwargs['orphans'] = 3 + return Paginator(queryset, per_page, **kwargs) |