django框架(十八:实现文章归档的几种方式)

本文介绍了在Django框架下实现文章归档的三种方式:一是通过普通函数查询并按时间归档;二是利用自定义管理器在models.py中定义并注册管理器方法;三是直接在模板中使用datetimes获取年月进行归档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种:定义普通的函数
查询所有的文章,并按照时间归档

def index(request):
	article_list = Article.objects.all()
	archive_list = archive_article(article_list)


def archive_article(article_list):
    archive_list = []

    for article in article_list:
        # 将每一个文章的发布日期都获取出来,按照'%Y/%m'进行格式化
        pub_date = article.date_publish.strftime('%Y/%m')
        if pub_date not in archive_list:
            # 如果这个时间字符串不在article_list这个列表中,就把这个年月添加进去
            archive_list.append(pub_date)

    return archive_list

第二种:自定义管理器
在models.py文章中定义一个管理器继承与Manager

class ArticleManager(models.Manager):
    def archive_date(self, article_list):
        archive_list = []
        # 需要获取所有的文章model对象。
        for article in article_list:
            # 将每一个文章的发布日期都获取出来,按照'%Y/%m'进行格式化
            pub_date = article.date_publish.strftime('%Y/%m')
            if pub_date not in archive_list:
                # 如果这个时间字符串不在article_list这个列表中,就把这个年月添加进去
                archive_list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值