上一篇文章我们写好了主页面(index),现在我们要从主页面跳转到个人用户的个人页面.
个人页面
首先在主页面实现跳转
<span><a
href="/blog/{
{ foo.user.username }}"
id="id_span">{
{ foo.user.username }}</a></span>
给username加一个a标签,为了实现点击头像也能跳转,在头像那边加一个label标签
<label for="id_span"><a
href="/blog/{
{ foo.user.username }}" id="id_span">
<img class="media-object author-img img-circle"
src="/media/{
{ foo.user.avatar }}" alt="头像">
</a>
</label>
label标签的for关键字与a标签的id关联.
设置url,写视图函数,在视图函数里,接受username参数
技术点:
1.归档的数据库查询
def home(request,username):
print(username)
# 去usernameInfo表中把用户对象取出来
user = models.UserInfo.objects.filter(username = username).first()
if not user:
print(444)
return HttpResponse("404")
else:
# 如果用户存在需要将他写的所有文章取出来
blog = user.blog
# article_list查询,我的文章列表
article_list = models.Article.objects.filter(user=user)
# 我的文章分类,及每个分类下的文章数
# 将我的文章按照我的分类分组,并统计出每个分类下的文章数
category_list = models.Category.objects.filter(blog=blog)
# 统计当前站点下有哪些标签
# 看当前博客下有什么标签,反向查询article表,values("title","c")看tag.title下的文章数
tag_list = models.Tag.objects.filter(blog=blog).annotate(c=Count("article")).values("title","c")
# 按照日期归档
archive_list = models.Article.objects.filter(user=user).extra(
select={