在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变量
本文出自 “Linux is belong to you” 博客,请务必保留此出处http://jwh5566.blog.51cto.com/7394620/1750487
原文:http://jwh5566.blog.51cto.com/7394620/1750487