Как использовать date_list из общих представлений даты в Django?

У меня есть эта функция, которую я использовал для преобразования объектов даты из моих сообщений в блоге в словарь лет и месяцев, который я могу отображать на боковой панели:

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 вы не можете получить доступ к текущему контексту из обработчика контекста.

Как я могу настроить свой код для работы с общим представлением даты без создания подклассов? Если нет, дайте мне знать, и почему?


person Pureferret    schedule 18.07.2016    source источник
comment
Я не понимаю, что ты пытаешься сделать. Вы не можете получить доступ к контексту, где? Какой выход вы ищете? Где вы надеетесь использовать этот код?   -  person Daniel Roseman    schedule 18.07.2016
comment
@DanielRoseman Я хочу превратить список datetime объектов в список годовых словарей с месяцами в них. В настоящее время код делает это, но я не знаю, как применить его к date_list в контексте представления.   -  person Pureferret    schedule 18.07.2016
comment
Похоже, тег шаблона был бы подходящим способом.   -  person Daniel Roseman    schedule 18.07.2016
comment
@DanielRoseman Я виню жару в том, что не подумал об этом.   -  person Pureferret    schedule 18.07.2016
comment
@DanielRoseman, ты имеешь в виду фильтр?   -  person Pureferret    schedule 19.07.2016