日期归档
商品信息
- 版本: 1.0.0
- 开发者: DjaCore官方
- 兼容性: 通用版本
- 更新时间:
Django 日期归档插件 一款基于Django框架的高效、自动化内容归档解决方案,为您的网站提供强大的时间轴内容组织能力。 本插件能够自动扫描并整合所有继承自特定基类的内容模型,生成按年、月、日层级划分的归档页面,并支持在侧边栏显示可交互的日历组件,极大提升了内容的管理效率和用户的浏览体验。
商品详情
Django 日期归档插件
一款基于Django框架的高效、自动化内容归档解决方案,为您的网站提供强大的时间轴内容组织能力。
本插件能够自动扫描并整合所有继承自特定基类的内容模型,生成按年、月、日层级划分的归档页面,并支持在侧边栏显示可交互的日历组件,极大提升了内容的管理效率和用户的浏览体验。
核心功能
📅 智能日历组件
在网站边栏提供直观的日历小工具。有文章的日期会高亮显示,用户点击特定日期可直接跳转至该日的文章列表页面。
🗂️ 多级归档视图
支持年、月、日三个层级的归档视图,允许用户按时间线快速筛选和定位内容,结构清晰,导航便捷。
🔄 自动化数据同步
通过Django信号机制,当文章被创建、更新或删除时,归档索引会自动同步,无需手动维护,保证数据的实时性。
🎨 模板标签灵活调用
提供简单的模板标签,如{% archive_calendar %},可轻松将归档功能集成到任何模板位置,支持按内容类型过滤。
使用方法
第一步安装与配置
- 将插件包放入项目的
plugins/目录下。 - 根据djacore插件安装步骤,启动插件,在系统重启后执行数据库迁移即可使用该插件功能
- 不需要操作路由等工作,系统会根据插件要求自行处理
第二步模板集成
在需要显示日历小工具的模板中,加载并调用模板标签:
{% load archive_tags %}{% archive_calendar \"article\" %}此标签会在页面中渲染一个日历,点击日期可进入对应日期的文章列表页。参数 \"article\" 表示只归档特定模型的内容,留空则归档所有支持的类型。
第三步:数据初始化
插件安装后,为现有内容创建归档索引,请运行提供的管理命令:
python manage.py rebuild_archive此命令会遍历数据库中所有兼容的内容,为其在归档系统中创建记录。此后,新发布或修改的内容将通过信号自动处理。
如果没有执行此命令,则只有以后的内容可以进入归档。
插件特色
- 非侵入式设计: 通过继承和信号机制实现,对现有模型代码无侵入,只需继承
CreateCommon基类即可获得归档能力。 - 高性能查询: 利用Django ORM的
TruncYear、TruncMonth等数据库函数进行日期分组统计,查询效率高。 - 风格统一: 提供一套基于Bootstrap的响应式模板,年、月、日归档页面风格一致,美观且易于自定义。
- SEO友好: 清晰的归档页面结构和链接有利于搜索引擎抓取和索引,有助于提升网站收录效果。
路由说明
如果没有引用日历那么我们则需要使用下面路由直接访问或者给蜘蛛一个入口:
- 归档首页,显示所有最新内容:
/archive/ - 显示特定年份的所有文章:
/archive/2026/ - 显示特定年月的所有文章:
/archive/2026/2/ - 显示特定年/月/日的所有文章:
/archive/2026/2/4/
批处理与数据维护
插件内置了强大的批处理功能,以应对各种数据维护场景:
| 场景 | 命令/方法 | 说明 |
|---|---|---|
| 初始数据归档 | python manage.py rebuild_archive | 为所有现有文章一次性生成归档记录,适用于插件初始化安装后。 |
| 日常数据同步 | Django 信号(自动) | 文章发布、更新、删除时,通过 post_save 和 post_delete 信号自动同步归档索引,无需人工干预。 |
| 清理孤儿记录 | rebuild_archive 命令逻辑 | 批处理命令包含智能检查逻辑,会自动清理因文章被删除而遗留的无效归档记录,保持数据整洁。 |
总结
Django日期归档插件是一个功能完善、安装简便、自动化程度高的解决方案。它通过提供清晰的日历导航和归档页面,极大地增强了内容型网站的用户体验和内容可发现性,是管理具有时间属性内容的得力工具。
版本迭代
——V1.0.0 2026年2月4日 15:48
新软件初上