我想优化我的代码:
# --- views.py ---
def error_page_404(request):
return render(request, '404.html', status=404)
# --- urls.py ---
handler404 = 'main.views.error_page_404'
urlpatterns = patterns('',
# ...
url(r'^404$', 'main.views.error_page_404'),
# ...
)
我的新代码:
# --- urls.py ---
handler404 = TemplateView.as_view(template_name="404.html", status_code=404)
urlpatterns = patterns('',
# ...
url(r'^404$', handler404),
# ...
)
新代码的优点是我们不需要views.py中的视图(对于404,403,500模板)。 不幸的是,这段代码对我不起作用。 我收到错误:
TemplateView() received an invalid keyword 'status_code'. as_view only accepts arguments that are already attributes of the class
如果使用“status”,那么它也是错误的。 怎么回事?有人帮帮我吗? :)
答案 0 :(得分:1)
您不需要此任务的任何自定义视图。使用django的内置:
url(r'^404/$', 'django.views.defaults.page_not_found'),