第一种:定义普通的函数
查询所有的文章,并按照时间归档
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