手动调度基于Django类的视图

时间:2015-12-14 17:09:56

标签: django

我的应用程序非常简单,它有一个基于WeekArchiveView类的视图:

class MenuWeekArchiveView(WeekArchiveView):
    queryset = Menu.objects.all()

及其相应的网址:

url(r'^(?P<year>[0-9]{4})/week/(?P<week>[0-9]+)/$', menu.views.MenuWeekArchiveView.as_view(), name="menu_week"),

我想让我的应用程序的主页返回当前周。

使用基于功能的旧视图,这很容易。我只是让主页以当前周数作为参数返回该函数。

today = datetime.date.today()
current_week_number = today.isocalendar()[1]
current_year = today.year
return week_view(request, year=current_year, week=current_week_number)

重定向是不可接受的,因为当有人为该页面添加书签时,他们会在那一周书签。

1 个答案:

答案 0 :(得分:2)

View.as_view()会返回您可以使用的正确视图函数:

today = datetime.date.today()
current_week_number = today.isocalendar()[1]
current_year = today.year
return MenuWeekArchiveView.as_view()(request, year=current_year, week=current_week_number)