代码之家  ›  专栏  ›  技术社区  ›  Apreche

为Django归档页面选择不同的年份和月份

  •  11
  • Apreche  · 技术社区  · 15 年前

    我想为我的django站点制作一个归档索引页面。然而,基于日期的通用视图实际上没有任何帮助。我希望视图返回的字典包含至少存在一个对象类型实例的所有年份和月份。所以,如果我的博客在2007年9月开始,但在2008年4月没有帖子,我可以得到这样的东西

    2009 - Jan, Feb, Mar
    2008 - Jan, Feb, Mar, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
    2007 - Sep, Oct, Nov, Dec
    3 回复  |  直到 15 年前
        1
  •  39
  •   Van Gale    15 年前

    这将为您提供一个独特的发布日期列表:

    Posts.objects.filter(draft=False).dates('post_date','month',order='DESC')
    

    当然,您可能不需要草稿过滤器,并将“post_date”更改为字段名,等等。

        2
  •  13
  •   Apreche    15 年前

    我找到了我自己问题的答案。

    It's on this page 在文件中。

    有一个名为dates的函数,它将为您提供不同的日期。所以我能做到

    Entry.objects.dates('pub_date','month')获取datetime对象列表,每年/每月一个。

        3
  •  1
  •   Jason Coon    15 年前

    django.views.generic.date_based.archive_month
    

    Reference page (在该页上搜索上述字符串)