Django 學習筆記一

在models中爲model創建url,這個方法可以再template中使用

from django.core.urlresolvers import reverse
Class Post(models.Model):
# ...
def get_absolute_url(self):
return reverse('blog:post_detail',
args=[self.publish.year,
self.publish.strftime('%m'),  # strftime產生前面的0
self.publish.strftime('%d'),
self.slug])

 

django分頁

from django.core.paginator import Paginator, EmptyPage,\
PageNotAnInteger
def post_list(request):
object_list = Post.published.all()
paginator = Paginator(object_list, 3) # 3 posts in each page
page = request.GET.get('page')  # request的查詢字符串帶page變量 1, 2, 3
try:
posts = paginator.page(page)  # 獲取指定page頁的posts 注意這裏的posts是Paginator對象,
                              # 包含posts對象和Paginator對象的方法
except PageNotAnInteger:
# If page is not an integer deliver the first page
posts = paginator.page(1)
except EmptyPage:
# If page is out of range deliver last page of results
posts = paginator.page(paginator.num_pages)
return render(request,
'blog/post/list.html',
{'page': page,    # 這裏的page 可有可無,因爲需要的數據都在posts裏面
'posts': posts})


{% include "pagination.html" with page=posts %}  # 這裏就是講posts對象換成pagination.html

                                                 # 裏面的page變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章