Django передает исключение ошибки в обработчик представлений об ошибках

urls.py

handler500 = 'main.views_error.view_error_500'

main/views_error.py

def view_error_500(request, exception=None):
    print("APP: view_error_500")
    print(exception)
    return render(request,"error/500.html", status=500)

Так вот, когда я запрашиваю страницу с ошибкой, она выглядит как Exception does not pass to views:

APP: view_error_500
None
2024-02-04 18:24:58,641 - django.request 241 - ERROR - Internal Server Error: /office/order_14841/
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
    return view_func(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
    return view_func(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/code/main/views_admin.py", line 1453, in admin_orders_edit
    order        = Company_Orders.objects.get(id=kwargs["order_id"])
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 647, in get
    raise self.model.DoesNotExist(
main.models.Company_Orders.DoesNotExist: Company_Orders matching query does not exist.

Как будто нет обработчика view_error_500, но я уверен

Вопрос в следующем: есть ли способ получить информацию об ошибке в мой обработчик, чтобы я мог работать с ошибками?

Решение:

error_text = "".join(traceback.format_exc(Exception))
print(error_text)
Вернуться на верх