django之文章最终页
发表于:2024-11-30 作者:热门IT资讯网编辑
编辑最后更新 2024年11月30日,文章最终页,就是点击链接标题后,显示文章的具体内容从上一篇博文,我们已经做好个人主页的筛选,下面是通过点击筛选后的文章,显示文章最终页面url设置如下: url(r'^(?P\w+)/(?P\d
文章最终页,就是点击链接标题后,显示文章的具体内容
从上一篇博文,我们已经做好个人主页的筛选,下面是通过点击筛选后的文章,显示文章最终页面
url设置如下:
url(r'^(?P\w+)/(?P\d+).html$', views.article),
之所以是这个url路由是,前端home页面配置录入下的title,a标签传递参数的时候就传递了2个参数
{% for article in article_list %} {{ article.title }} {{ article.summary }} {% endfor %}
后台的代码
def article(request,site,nid): blog=models.Blog.objects.filter(site=site).first() if not blog: return redirect('/') #分类 category_list = models.Article.objects.filter(blog=blog).values('category_id','category__title').annotate(ct=Count('nid')) #标签 tag_list = models.Article2Tag.objects.filter(article__blog=blog).values('tag_id','tag__title').annotate(ct=Count('id')) #时间 date_list = models.Article.objects.filter(blog=blog).extra( select={'ctime': "strftime('%%Y-%%m',create_time)"}).values('ctime').annotate(ct=Count('nid') ) #文章列表 obj = models.Article.objects.filter(blog=blog,nid=nid).first() return render( request, 'article.html', { 'blog':blog, 'category_list':category_list, 'tag_list':tag_list, 'date_list':date_list, 'obj':obj, } )
前端页面代码
Title {{ blog.title }}--{{ blog.user.nickname }} 文章分类
{% for category in category_list %} - {{ category.category__title }}({{ category.ct }})
{% endfor %}
标签分类
{% for tag in tag_list %} - {{ tag.tag__title }}({{ tag.ct }})
{% endfor %}
时间标签
{% for date in date_list %} - {{ date.ctime }}({{ date.ct }})
{% endfor %}
{% for article in article_list %} {{ article.title }}{# {{ article.summary }}#} {% endfor %} {{ obj.title }}
{{ obj.articledetail.content|safe }}
结果