использование Handler404 в django url dispatcher вызывает ошибку сервера - PullRequest
3 голосов
/ 11 мая 2019

Я следовал этому https://stackoverflow.com/a/31381075/10087274, потому что я хочу, чтобы, когда URL-адрес не существовал, json показывает ошибку, но проблема здесь в том, что я получаю ошибку сервера 500, когда я добавляю handler404 в диспетчер URL-адресов, вот мой URL проекта:

from django.urls import path, include
from django.conf.urls import handler404
from api.exception import custom404

handler404 = custom404

urlpatterns = [
    path('api/v1/', include('acl.urls')),
]

, и у меня есть файл exception.py в папке моего проекта (рядом с settings.py), в которой содержится следующее:

from django.http import JsonResponse


def custom404(request):
    return JsonResponse({
        'status_code': 404,
        'error': 'The resource was not found'
    })

Я не знаю, как решить мою проблему

1 Ответ

3 голосов
/ 11 мая 2019

К сожалению, вы не предоставили много информации об отслеживании ошибок.

В любом случае, самое первое, что я заметил в вашем коде, вы пропустили один необязательный параметр до custom404 функция. Эта функция должна принимать два параметра: request и exception

def custom404(request, <b>exception=None</b>):
    response = {
        'status_code': 404,
        'error': 'The resource was not found'
    }
    return JsonResponse(<b>response, status=404</b>)

Ссылка
1. Пользовательские сообщения об ошибках

...