我有这个功能,我用来将我的博客文章中的日期对象转换成我可以在侧边栏中显示的年和月的字典:
def post_dates(self):
"""Get dictionary of dates for all posts."""
grouped_dates = groupby(Post.objects.datetimes('published', 'month'),
lambda date: date.year)
def get_months(dates):
return [{'name': months[d.month],
'num':str(d.month).zfill(2)} for d in dates]
dates = [{"year": year, 'months': get_months(dates)}
for year, dates in grouped_dates]
return dates
现在我正在使用Generic Date Views,所有这些都会在上下文中提供date_list
。
目前我的网址是这样的:
url(r'posts/(?P<year>\d{4})/?',
YearArchiveView.as_view(model=Post, date_field="published"), name="post_year_archive"),
所以我没有将视图分类。
我真的不想为每个人写一个视图。我认为您可以在context_processor
中执行此操作,但我read您无法从竞争处理器访问当前上下文。
如何在不进行子类化的情况下调整我的代码以适用于通用日期视图?如果不让我知道,为什么?