settings.py:

#安装

pip install django-taggit

INSTALLED_APPS = [
'myblog',
'taggit',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

实体类中进行定义:

from taggit.managers import TaggableManager
class Post(models.Model):
'''
实体-文章类
发布的文章
'''
STATUS_CHOICES={
('draft', '草稿'),
('published', '发布'),
}
title=models.CharField(max_length=300,verbose_name='文章标题')
zhaiyao=models.TextField(verbose_name='摘要')
content=models.TextField(verbose_name='文章内容')
author = models.ForeignKey(User,related_name='blog_posts')
publish = models.DateTimeField(default=timezone.now,verbose_name='发布时间')
created = models.DateTimeField(auto_now_add=True,verbose_name='提交时间')
updated = models.DateTimeField(auto_now=True,verbose_name='更新时间')
status=models.CharField(max_length=10,choices=STATUS_CHOICES)
tags=TaggableManager
published=PublishedManager()
# #分类标签
tags = TaggableManager() class Meta:
ordering = ('-publish',) def __str__(self):
return self.title def __unicode__(self):
return self.title def get_absolute_url(self):
return reverse('myblog:post_detail',args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.title.encode('utf-8')])

html:

{% extends "myblog/base.html" %}
{% block content %}
{% if tag %}
<h2>Posts tagged with "{{ tag.name }}"</h2>
{% endif %}
{% for post in posts %}
<h2>
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
</h2>
<p class="tags">
{# {{ post.tags.all|join:", " }}#}
标签:
{% for tag in post.tags.all %}
<a href="{% url "myblog:post_list_by_tag" tag.slug %}">
{{ tag.name }}
</a>
{% if not forloop.last %}
,
{% endif %}
{% endfor %}
</p>
{# posted @ 2016-04-18 16:16 similarface#}
<p class="date">
posted@{{ post.publish }} {{ post.author }}
</p>
{{ post.body|truncatewords:30|linebreaks }}
{% endfor %}
{% include "pagination.html" with page=posts %}
{# {% include "pagination.html" with page=page_obj %}#}
{% endblock %}

urls.py:

    url(r'^tag/(?P<tag_slug>[-\w]+)/$', views.post_list,name='post_list_by_tag'),

views.py:

def post_list(request,tag_slug=None):
'''
文章的列表
:param request:
:return:所有文章的列表
'''
#获取所有的published的文章
object_list=Post.published.all()
tag=None
if tag_slug:
tag=get_object_or_404(Tag,slug=tag_slug)
object_list=object_list.filter(tags__in=[tag])
paginator=Paginator(object_list,3)
#rquest没有就返回None
page=request.GET.get('page')
try:
posts=paginator.page(page)
except PageNotAnInteger:
posts=paginator.page(1)
except EmptyPage:
posts=paginator.page(paginator.num_pages)
return render(request,'myblog/post/list.html',{'page':page,'posts':posts,'tag':tag})

http://127.0.0.1:8000/myblog/?page=3

http://127.0.0.1:8000/myblog/tag/python/

Django之tag的使用的更多相关文章

  1. Django之tag标签和filter标签

    1.Django的tag常见的标签,可以做一些简单的功能 {%if%} 的使用主要用于做判断,还可以包含{%elif%} 这样的用法,最后要跟上{% endif %}.可以使用你的and,or,not ...

  2. django中tag的用法

    在app里建一个子的python包,包含__init__.py,包名为templatetags,里面新建一个tags.py(这个名字可以随意) from django import templater ...

  3. 建立DJANGO的自定义TAG

    DJANGO的TAG分为三类: • simple_tag : Processes the data and returns a string• inclusion_tag : Processes th ...

  4. Django基础007--filter&tag

    1.Django自带的过滤器filter def index(request): print('index...........') navs = '今天天气真好fdsfds!!!' title='& ...

  5. Django 中 如何使用 settings.py 中的常量

    在用django 框架开发 python web 程序的时候 , 在模板页面经常会用到 settings.py 中设置的常量,比如MEDIA_URL, 我尝试过在模板页面用类似如下的方式 程序代码 { ...

  6. Awesome Django

     Awesome Django    If you find Awesome Django useful, please consider donating to help maintain it. ...

  7. Django 项目补充知识(JSONP,前端瀑布流布局,组合搜索,多级评论)

    一.JSONP 1浏览器同源策略 通过Ajax,如果在当前域名去访问其他域名时,浏览器会出现同源策略,从而阻止请求的返回 由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一 ...

  8. django tag

    官方文档:https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#simple-tags stackoverflow de ...

  9. Django里面的自定义tag和filter

    Django的文档里面有这么一句 The app that contains the custom tags must be in INSTALLED_APPS  in order for the { ...

随机推荐

  1. 美食节(bzoj 2879)

    Description CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节.作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴.他很快就尝遍了美食节所有的美食.然而,尝鲜的欲望是难以满足的.尽 ...

  2. 负载平衡(cogs 741)

    «问题描述:G 公司有n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使n 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运.«编程任务:对于给定的n 个环 ...

  3. FusionCharts参数说明补充

    原文发布时间为:2010-09-14 -- 来源于本人的百度文章 [由搬家工具导入] 功能特性animation                    是否动画显示数据,默认为1(True)showN ...

  4. linux下的用户管理(二)

    创建帐号: 手工创建-> 1.在/etc/passwd中添加一条记录 2.创建用户主目录 3.在用户的家目录下设置默认的配置文件 4.设置用户初始口令 命令创建-> useradd或add ...

  5. 享元模式FlyweightPattern(转)

    解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象.比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象 ...

  6. android中Adapter适配器的讲解

    Adapter(适配器的讲解) 适配器就我自己来看,我觉得这是一个非常重要的知识点,Adapter是用来帮助填出数据的中间桥梁,简单点说吧:将各种数据以合适的形式显示在View中给用户看.Adapte ...

  7. Java使用apache的开源数据处理框架commons-dbutils完成查询结果集的各种处理输出(8种方式)

    package demo; /* * QueryRunner数据查询操作: * 调用QueryRunner类方法query(Connection con,String sql,ResultSetHan ...

  8. 爬虫学习笔记(三)requests模块使用

    前面在说爬虫原理的时候说了,就写代码自动化的获取数据,保存下来数据,那怎么写代码来请求一个网址,获取结果呢,就得用requests模块了. 这篇博客说一下requests模块的使用,requests模 ...

  9. nfc是什么?nfc功能是什么?

    http://android.tgbus.com/lab/software/201208/447420.shtml nfc是什么?nfc功能是什么?出现在我们手机上的nfc功能怎么用?下面请看今天小编 ...

  10. A Wasserstein Distance[贪心/模拟]

    链接:https://www.nowcoder.com/acm/contest/91/A来源:牛客网 最近对抗生成网络(GAN)很火,其中有一种变体WGAN,引入了一种新的距离来提高生成图片的质量.这 ...