我正在尝试处理Django项目中的错误,并不断收到以下消息:
Traceback (most recent call last):
File "/usr/local/Cellar/python@3.9/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/wsgiref/handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/core/handlers/wsgi.py", line 132, in __call__
response = self.get_response(request)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/core/handlers/base.py", line 140, in get_response
response = self._middleware_chain(request)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/core/handlers/exception.py", line 57, in inner
response = response_for_exception(request, exc)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/core/handlers/exception.py", line 139, in response_for_exception
response = handle_uncaught_exception(
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/core/handlers/exception.py", line 184, in handle_uncaught_exception
return callback(request)
File "/Users/Tom/Desktop/squeasy /tasks/views.py", line 31, in handler500
response = render(request, template_name)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/shortcuts.py", line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/template/loader.py", line 61, in render_to_string
template = get_template(template_name, using=using)
File "/Users/Tom/.local/share/virtualenvs/squeasy_-djXBooHN/lib/python3.9/site-packages/django/template/loader.py", line 19, in get_template
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: 500.html为我的设置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR /'squeasy/tasks/templates/tasks'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]我也尝试过:
'DIRS': [],
'APP_DIRS': True,和
'DIRS': [os.path.join(BASE_DIR, 'templates')],和
'DIRS': [BASE_DIR/'templates'],在正常运行模板时,我没有其他错误,只有当我强制执行错误时,才会出现其他错误。
我有以下views.py来处理400、403和404错误请求:
def handler400(request, exception, template_name = "400.html"):
response = render(request, template_name)
response.status_code = 400
return response
def handler403(request, exception, template_name = "403.html"):
response = render(request, template_name)
response.status_code = 403
return response
def handler404(request, exception, template_name="404.html"):
response = render(request, template_name)
response.status_code = 404
return response
def handler500(request, template_name="500.html"):
response = render(request, template_name)
response.status_code = 500
return response在我的项目的urls.py文件中有:
handler400 = 'tasks.views.handler400'
handler403 = 'tasks.views.handler403'
handler404 = 'tasks.views.handler404'
handler500 = 'tasks.views.handler500'视图所在的应用程序名为任务。
DEBUG = False在我的settings.py文件中。
发布于 2022-07-24 17:45:52
答复如下:
def handler400(request, exception, template_name = "tasks/400.html"):
response = render(request, template_name)
response.status_code = 400
return response
def handler403(request, exception, template_name = "tasks/403.html"):
response = render(request, template_name)
response.status_code = 403
return response
def handler404(request, exception, template_name="tasks/404.html"):
response = render(request, template_name)
response.status_code = 404
return response
def handler500(request, template_name="tasks/500.html"):
response = render(request, template_name)
response.status_code = 500
return response问题是我只有400.html而不是tasks/400.html
https://stackoverflow.com/questions/73097147
复制相似问题