这是我在 urls.py 中的代码:
def handler500(request, exception):
response = HttpResponseServerError('error.html', {},
context_instance=RequestContext(request))
response.status_code = 500
return response
Run Code Online (Sandbox Code Playgroud)
但我有一个:
TypeError: handler500() missing 1 required positional argument: 'exception'
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑 bis 整个代码:
from django.contrib import admin
from django.urls import path
from django.urls import include
from django.conf import settings
from django.conf.urls.static import static
from django.http import HttpResponseServerError
urlpatterns = [path("admin/", admin.site.urls)]
urlpatterns += [path("", include("Exchange.urls"))]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
from django.shortcuts import render_to_response
from django.template import RequestContext
def handler404(request, exception, template_name='404.html'):
response = render_to_response('404.html', {},
context_instance=RequestContext(request))
response.status_code = 404
return response
def handler500(request,exception):
response = HttpResponseServerError('error.html', {},
context_instance=RequestContext(request))
response.status_code = 500
return response
Run Code Online (Sandbox Code Playgroud)
所以这里是整个 urls.py 文件,看来我的帖子主要是代码,所以我必须添加更多细节,比如这是 django 2.0 版本,或者它在 ubuntu 操作系统上的 python3.6 上运行。
如果你看一下docs,它定义了 500 处理程序,只有一个位置参数。
更改您的代码
def handler500(request, exception):
Run Code Online (Sandbox Code Playgroud)
到
def handler500(request):
Run Code Online (Sandbox Code Playgroud)
让我们知道这是否有效。
只是一个提示:关于自定义错误视图的django 文档建议将您的视图函数放入views.py并只将字符串名称添加到您的urls.py,例如:
# in views.py
def handler500(request):
...
# in urls.py
handler500 = 'mysite.views.handler500'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4476 次 |
| 最近记录: |