django实现日期分类效果
日期分类效果图

实现功能:能够按照月份进行分类,统计每个月份的文章数量,没有文章的月份不显示。点击每栏可以链接的当月的文章列表。
每月文章列表可以使用django的通用视图MonthArticleView,比较容易实现。日期分类需要自己模板的context。
(参考链接地址:http://www.butteredcat.org/article/23/)
def month_list():
articles = Article.objects.all()
year_month = set() #设置集合,无重复元素
for a in articles:
year_month.add((a.cre_date.year,a.cre_date.month)) #把每篇文章的年、月以元组形式添加到集合中
counter = {}.fromkeys(year_month,0) #以元组作为key,初始化字典
for a in articles:
counter[(a.cre_date.year,a.cre_date.month)]+=1 # 按年月统计文章数目
year_month_number = [] #初始化列表
for key in counter:
year_month_number.append([key[0],key[1],counter[key]]) # 把字典转化为(年,月,数目)元组为元素的列表
year_month_number.sort(reverse=True) # 排序
return {'year_month_number':year_month_number} #返回字典context
然后使用合并到原来context中。
每月文章显示,使用django的通用视图MonthArticleView。
from django.views.generic.dates import MonthArchiveView from .models import Article
class ArticleMonthArchiveView(MonthArchiveView):
template_name = 'blog/main/index_by_month.html'
queryset = Article.objects.all()
date_field = "cre_date"
paginate_by = 4 def get_context_data(self, **kwargs):
context = super(ArticleMonthArchiveView,self).get_context_data(**kwargs)
context["categories"] = Category.objects.annotate(num_article = Count('article'))
context.update(month_list())
return context
django实现日期分类效果的更多相关文章
- 利用select实现年月日三级联动的日期选择效果
× 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...
- FileClassify文件日期分类工具
FileClassify是一款免费的文件按日期分类工具,能够根据文件修改日期,将文件移动或复制到对应的目录中 如果对您有较大的帮助,欢迎捐赠我们,我们对您表示衷心的感谢! 1.输入文件夹和输出文件可以 ...
- python + sklearn ︱分类效果评估——acc、recall、F1、ROC、回归、距离
之前提到过聚类之后,聚类质量的评价: 聚类︱python实现 六大 分群质量评估指标(兰德系数.互信息.轮廓系数) R语言相关分类效果评估: R语言︱分类器的性能表现评价(混淆矩阵,准确率,召回率,F ...
- CNN结构:图片风格分类效果已成(StyleAI)
CNN结构:图片风格分类效果已成.可以在色彩空间对图片风格进行分类,并进行目标分类. StyleAI构架:FasterRCnn + RandomTrees 为何不使用MaskRCNN? MaskRCN ...
- Fragment 实现的 分类 效果
Fragment 实现的 分类 效果 布局文件的信息: <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...
- html、js、django处理日期问题
在html中使用日期控件,利用ngmodel将输入的值传到js里: <input type="date" ng-model="timeOps.test.a_time ...
- 图片按日期分类和查看程序(WPF开发)(附源码)
手机方便了我们的生活,可以随时随地拍摄.越来越多的图片堆砌在电脑里.看到杂乱无章的图片,实在感到头痛.手动整理太复杂.基于此,我写了一个小程序,可以将图片按日期整理和查看.按日期查看图片,回忆过去的点 ...
- jq仿苹果的时间/日期选择效果
1.html文件,index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- django admin日期变为可以修改
Django - 日期.时间字段 阅读目录 DateTimeField.auto_now DateTimeField.auto_now_add admin中的日期时间字段 如何将创建时间设置为“默 ...
随机推荐
- Linux下修改密码复杂度
在linux,设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件,里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数PASS_MIN_DAYS 80 #密码最小过 ...
- Google 翻译如何获取 tk 参数值?
1.首先获取 TKK 参数,这个参数可以在 https://translate.google.com 网页获取, src:TKK=eval('((function(){var a\x3d2089517 ...
- Linux运维-zabbix_agent最新版的yum安装
agentd端可以直接使用yum来进行安装 rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1. ...
- (2.3)学习笔记之mysql基础操作(表/库操作)
本系列学习笔记主要讲如下几个方面: 本文笔记[六:表操作--线上可以直接删除表吗?] 附加:库操作 [1]创建制定字符集的数据库 需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用crea ...
- C++ 语言操作符的优先级
cppreference.com -> C++ 操作符优先级 C++ 操作符优先级 优先级 操作符 1 () [] -> . :: ! ~ ++ ...
- Python之常用模块(re,时间,random,os,sys,序列化模块)(Day20)
一.时间模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 在Python中表示时间的三种方式:时间戳,元组(s ...
- PL/SQL不能格式化SQL:--PL/SQL Beautifier could not parse text
PL/SQL sql语句美化器点击没有反应.查看下面提示PL/SQL Beautifier could not parse text.本人此次产生的原因是sql语句语法错误. 工具栏处(如果没有此按钮 ...
- NodeJS 加入windows7服务 开机运行 nssm
from:http://blog.sina.com.cn/s/blog_5ef5f2630101aql8.html 首先需要到http://nssm.cc/download/?page=downloa ...
- sql server分区
1. 创建分区 分区步骤:1.创建分区函数 2.创建分区架构 3.创建分区索引(聚集) --1. 创建分区函数 DECLARE @dt datetime SET @dt = '20030901' ...
- SpringMVC:学习笔记(5)——数据绑定及表单标签
SpringMVC——数据绑定及表单标签 理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 按照我们以往所学,如果要获取请求的所有参数 ...