您的位置:首页 > 编程语言 > Go语言

django博客功能实现——标签功能

2016-06-14 17:24 609 查看

标签功能添加流程

0.功能概括

标签作为文章中的分类标记,会显示出该文章是关于哪一方面的文章,比如是关于python的还是关于django的。

当我们点击该标签的时候,会出现该博客中所有属于该标签的文章

1.在其他页面做一个链接,指向标签分类页面

在其他页面中显示该文章标签的地方操作,对该标签添加一个URL,作用是定向到分类标签页面的URL(例如tag页面)

<a href="{% url "search_tag" tag=post.category %}">{{post.category}}</a>

连接进入name为search_tag的URL,并将选中的标签(post.category)赋值给tag,一同传递给下一个页面

2.定义一个URL,既定义标签分类页面的网址

上一步中,我们指向了一个新的URL,在这里定义出这个URL:

url(r'^tag(?P<tag>\w+)/$','article.views.search_tag',name='search_tag'),

url接受上一步中传进来的tag值,并放在http中传递给视图函数。

3.在views中调用属于同一个标签文章

def search_tag(request,tag): #tag在URL中获取
try:
post_list = Article.objects.filter(category__iexact=tag) #对文章进行过滤,过滤方法是:标签不区分大小写,并且等于tag
raise Http404
return render(request,'tag.html',{'post_list':post_list})


该视图中过滤获取所需要的文章,并调用tag.html,让其在该html中显示

4.定义html,用来做显示输出

{% block content %}
<div class="posts">
{% for post in post_list %}
<section class="post">
<header class="post-header">

<h2 class="post-title"><a href="{% url "detail" id=post.id %}">{{post.title}}</a></h2>

<p class="post.meta">
Time: <a class="post-author" href="#">{{post.date_tiem|date:"Y M d"}}
</a><a class="post-category post-category-js" href="{% url "archives" tag=post.category %}">{{post.category|title}}</a>
</p>
</header>

<div class="post-description">
<p>
{{post.content|custom_markdown}}
</p>
</div>
<a class="pure-button" href="{% url "detail" id=post.id %}">阅读更多>>></a>

</section>
{% endfor%}
</div>
{%endblock%}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: