具有通用视图的 Django 年/月存档页面
希望按月和年制作通用视图存档页面。 像这样:
2011 - January March
2010 - October December
我得到什么:
2011 - January January
2010 - January January
这可能吗?这是视图和模板。
看法
def track_archive(request):
return date_based.archive_index(
request,
date_field='date',
queryset=Track.objects.all(),
)
track_archive.__doc__ = date_based.archive_index.__doc__
template
{% for year in date_list %}
<a href="{% url track_archive %}{{ year|date:"Y" }}/">{{ year|date:"Y" }}</a> archives:
{% for month in date_list %}
<a href="{% url track_archive %}{{ year|date:"Y" }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
{% endfor %}
{% endfor %}
Looking to make a generic view archive page by month and year.
Like this:
2011 - January March
2010 - October December
What I am getting:
2011 - January January
2010 - January January
Is this possible? Here are the views and templates.
view
def track_archive(request):
return date_based.archive_index(
request,
date_field='date',
queryset=Track.objects.all(),
)
track_archive.__doc__ = date_based.archive_index.__doc__
template
{% for year in date_list %}
<a href="{% url track_archive %}{{ year|date:"Y" }}/">{{ year|date:"Y" }}</a> archives:
{% for month in date_list %}
<a href="{% url track_archive %}{{ year|date:"Y" }}/{{ month|date:"b" }}/">{{ month|date:"F" }}</a>
{% endfor %}
{% endfor %}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据 doc ,
archive_index
仅计算年份。您可能想要编写年/月分组:您的模板:
y 和 m 是日期对象,您应该能够提取任何日期格式信息来构建您的网址。
According to the doc,
archive_index
only calculates the years. You might want to write the year/month grouping:Your template:
y and m are date objects, you should be able to extract any date format information to construct your urls.
您可以这样做并坚持使用通用视图 - 如果您使用基于类的通用视图。
而不是使用 ArchiveIndexView
使用类似的内容
然后在模板中,您将获得月份字典,您可以按年份对其进行分组::
You can do it and stick with generic views - if you use class based generic views.
Instead of using ArchiveIndexView
use something like
Then in your template, you get the months dictionary, which you can group by year::