django - 手动调度 Django 基于类的 View

标签 django

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

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

及其对应的URL:

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

我希望我的应用程序的主页在本周返回。

对于旧的基于函数的 View ,这很容易。我只是让主页返回该函数,并以当前周数作为参数。

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)

重定向是 Not Acceptable ,因为当有人为该页面添加书签时,他们会在那周添加书签。

最佳答案

View.as_view() 返回您可以使用的正确 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)

关于django - 手动调度 Django 基于类的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272751/

相关文章:

python - 导入时“没有名为...的模块”

python - 如何重定向?映射? Django 中的网址

python - django.setup() 的目的是什么?

django - Django中的 "post"方法

python - Django/Python - 每秒更新一次数据库

django - 反转唯一的通用外键(并返回一个对象而不是相关的管理器)

Django、PostgreSQL、set_autocommit 和测试用例

python - 无法在 View 中设置 Django 表单的字段值

python - django中的测试设置错误。 self 没有过去。

DjangoRestFramework - 注册用户 : difference between UserSerializer. save() 和 User.objects.create_user()?