2011-06-06 96 views
0

我有一系列与Django的通用日期视图绑定的url。在extra_context参数中,我希望传入基于URL中年/月变量的查询集,但我不确定如何访问它们。例如,在Django基于日期的通用视图:如何访问变量

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。理想情况下,集合将在每个请求中查找,而不仅仅是在编译时缓存。我最好为此编写一个上下文处理器/扩展视图?

回答

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'), 
相关问题