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变量

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