我之前在我的网站的不同页面上建立了档案。但是,这次Django不想与我合作。
class IndexView(ArchiveIndexView):
template_name = 'cms/blog_base.html'
date_field = 'pub_date'
latest = '20'
model = Entry
In template {% for year in date_list %} {{ year|date:"Y" }} gives me a date relating to none of my entries. {% for entry in object_list % } {{ entry.pub_date|date:"Y" }} obviously outputs the correct date for the entry but as the entries grow I can only imagine it will continue to duplicate the years and months.
那么我做错了什么?我需要在ArchiveIndexView和模板标签中做什么才能将日期与我的条目集相关联?在过去,它们位于不同的页面上,因此通过url conf中的正则表达式进行过滤。我看到的一个解决方案是使用一些原始SQL创建一个自定义管理器,我正在看什么?如果是这样,我将一起重新考虑这一切。感谢社区提前。
更新:示例:我在主页上想要的东西与此页面上的内容类似https://unweb.me/blog/monthly-archives-on-Django我现在也在考虑尝试他们的解决方案,因为它看起来像是一个不错的UI / UX。但是,我是一个简单的人,如果有的话,我很乐意采取简单的路线。
答案 0 :(得分:3)
您在寻找regroup - 功能吗?
示例:强>
{% regroup object_list by date_field|date:"Y" as year_list %}
{% for year in year_list %}
{% regroup year.list by date_field|date:"F" as month_list %}
{% for month in month_list %}
{{ month.grouper }} / {{ year.grouper }} <br />
{{ month.list }}
{% endfor %}
{% endfor %}