Общие представления на основе даты в Django: как получить доступ к переменным - PullRequest
0 голосов
/ 06 июня 2011

У меня есть серия URL-адресов, связанных с общими представлениями даты в Django. В параметре extra_context я хотел бы передать набор запросов, основанный на переменных года / месяца в URL, но я не уверен, как получить к ним доступ. Например, в

url(r'^archive/(?P<year>20[1-2][0-9])/?$', archive_year,
{'queryset': Article.objects.all(),
'date_field': 'publication_date',
'template_name': 'articles/archive-date-list.html',
'extra_context': {'content': 'articles'}},
name='article_archive'),

Я бы хотел добавить в 5 последних статей, где год публикации - gte year и lt year + 1. В идеале коллекция должна просматриваться при каждом запросе, а не просто кэшироваться во время компиляции. Мне лучше написать контекстный процессор для этого / расширения представления?

1 Ответ

2 голосов
/ 06 июня 2011

Вы создаете оболочку для общего вида:

# myapp/views.py

def my_archive_year(request, year):
    # Logic to get the articles here

    return archive_year(request,
        year=year,
        date_field='publication_date',
        template_name='articles/archive-date-list.html',
        extra_context = {'content': articles}
    )

# urls.py

url(r'^archive/(?P<year>20[1-2][0-9])/?$', 'myapp.views.my_archive_year', name='article_archive'),
...