Я пытаюсь проверить исключения в рамках django rest. основе http://www.django-rest-framework.org/api-guide/exceptions/ повышающего NotFound,Повышение исключений в Django REST
По умолчанию это исключение приводит ответ с HTTP статус кода "404 Not Found".
Однако, когда я выдавать GET (к/example1) Я получаю 500 с,
Request Method: GET
Request URL: http://192.168.59.103:8002/example1
Django Version: 1.8.3
Exception Type: NotFound
Exception Value:
not found
Exception Location: /home/djangoapp/testtools/api/views.py in example1, line 7
Python Executable: /usr/bin/python
детали ниже,
settings.py
REST_FRAMEWORK = {'EXCEPTION_HANDLER':'rest_framework.views.exception_handler'}
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
)
urls.py
from django.conf.urls import include, url
from api import views
urlpatterns = [
url(r'example1', views.example1),
]
views.py
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.exceptions import APIException,ParseError,NotFound
def example1(request):
raise NotFound("not found")
Любые идеи?
В комментариях к @ Ответ ArpitGoyal, который вы говорите, вы действительно хотите знать, как генерировать собственный ответ 404 для любого URL, а не только этот пример кода. не могли бы вы прояснить вопрос, если это правда? –