У меня есть эта функция, которую я использовал для преобразования объектов даты из моих сообщений в блоге в словарь лет и месяцев, который я могу отображать на боковой панели:
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 Представления, все из которых предоставляют date_list
в контексте.
В настоящее время URL-адрес для меня выглядит так:
url(r'posts/(?P<year>\d{4})/?',
YearArchiveView.as_view(model=Post, date_field="published"), name="post_year_archive"),
Поэтому я не подклассифицировал представление.
Я действительно не хочу писать представление для каждого. Я думал, что вы можете сделать это в context_processor
, но я read вы не можете получить доступ к текущему контексту из обработчика контекста.
Как я могу настроить свой код для работы с общим представлением даты без создания подклассов? Если нет, дайте мне знать, и почему?
datetime
объектов в список годовых словарей с месяцами в них. В настоящее время код делает это, но я не знаю, как применить его кdate_list
в контексте представления. - person Pureferret   schedule 18.07.2016