我使用YearArchiveView
与我创建显示在页面上,从每年的全部评论的应用程序:Django YearArchiveView可以返回所有可能年份的列表吗?
class year_reviews(YearArchiveView):
queryset = SimpleReview.objects.published()
date_field = "date_published"
make_object_list = True
allow_future = False
template_name = 'reviews.html'
context_object_name = 'reviews'
视图工作正常 - 它正确地返回所有评论在指定的一年网址,不会显示将来的评论,并且只显示已发布的评论。
在呈现页面的顶部,我想列出所有包含评论的年份,以便用户可以轻松移动到不同年份的评论。 YearArchiveView
会自动为模板提供next_year
和previous_year
上下文变量,但我找不到任何可用年份的列表。 date_list
看起来很有前途,但只在选定年份内返回个月的列表。
有没有什么办法可以获得视图可以显示的所有年份的列表,以便在视图的页面之间提供导航?
我刚刚开始学习基于类的视图,所以我对'get_context_data'很熟悉,但我会研究这个,看看是否有方法可以将自定义查询集绑定到该类。谢谢。 – nhinkle
编辑更多一点细节。 –
我给了这样一个尝试,但因为我的'date_published'是一个DateTimeField而不是一个DateField,我遇到了一个错误([#21432](https://code.djangoproject.com/ticket/21432))当试图在查询集上使用'datetimes()'方法时会导致错误。这个bug已经修复了,但是它并不在我使用的Django 1.6(production)中,所以我不能真正测试这个,直到我找出解决这个bug的方法。感谢您的帮助 - 我会在修复问题后进行更新。 – nhinkle