重点内容## django的get_absolute_url函数
这个函数的原理不太理解,查官网看了下,还是有点困惑
参考:
https://docs.djangoproject.com/en/1.11/ref/models/instances/
在shell打印下这个函数返回的值
from blog.models import Post
Post.objects.get(pk=3)
<Post: 我的第二篇文章>
p= Post.objects.get(pk=3)
p.get_absolute_url()
'/post/3/' # 这里打印出的和url写的关联着
url(r'^posts/(?P<pk>[0-9]+)/$', views.detail, name='detail'),
models是这样写的
class Post(models.Model):
title = models.CharField(max_length=70)
body = models.TextField()
created_time = models.DateTimeField()
modified_time = models.DateTimeField()
excerpt = models.CharField(max_length=200, blank=True)
category = models.ForeignKey(Category)
tags = models.ManyToManyField(Tag, blank=True)
author = models.ForeignKey(User)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog:detail', kwargs={'pk': self.pk})
views函数
def detail(request,pk):
post = get_object_or_404(Post,pk=pk)
post.body = markdown.markdown(post.body,
extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc',
])
return render(request, 'blog/detail.html', context={'post': post})