Django基于日期的通用视图:如何访问变量

时间:2011-06-06 14:10:04

标签: django django-generic-views

我有一系列与Django的通用日期视图绑定的URL。在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 个答案:

答案 0 :(得分:2)

围绕通用视图创建一个包装器:

# 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'),