2011-10-05 87 views
2

我很惊讶how little关于基于类的通用视图的文档。
任何稍微比平凡的样本更复杂的事情必须通过猜测,试验和错误来完成。如何在默认情况下使用WeekArchiveView显示最近一周的项目?

我想使用WeekArchiveView显示一周的项目列表。

有我urls.py项:

url(r'^items/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$', ItemWeekArchiveView.as_view()) 

如果没有指定yearweek,我得到一个错误页面。
我希望它们默认等于今天的年份和星期。

什么地方适合调整?我应该引入另一个混合并覆盖一个方法吗?

回答

3

类似于/items//items/2011/的网址与您的正则表达式不匹配,因为\d{4}表示正好4位数。

你或许应该为这两种情况下指定两个另一个URL条目:

url(r'^items/$', AchievementListView.as_view(
    year=str(date.today().year), week=str(date.today().isocalendar()[1]) 
    )), 
url(r'^items/(?P<year>\d{4})/week/(?P<week>\d{1,2})/$', ItemWeekArchiveView.as_view()), 

Using isocalendar to get the week number)。

+0

谢谢。我编辑了你的答案,以包含实际的代码。 –

相关问题