【发布时间】:2018-02-04 05:08:37
【问题描述】:
我正在使用 Django 2.0.1,我正在尝试用另一个响应覆盖 Django 404 页面。我不想返回常规模板,而是返回 JSON 响应。
这是我的项目/urls.py
from django.conf.urls import include
from django.contrib import admin
from django.urls import path
from django.conf.urls import handler404
from django.http import JsonResponse
urlpatterns = [
path('admin/', admin.site.urls),
path('users/', include('accounts.urls'))
]
def response404(request, status=200, message='Not Found', data=None):
data = {'status': 404, 'message': message, 'data': data}
return JsonResponse(data=data, status=status)
def response500(request, status=500, message='Not Found', data=None):
data = {'status': status, 'message': message, 'data': data}
return JsonResponse(data=data, status=status)
handler404 = response404
handler500 = response505
在帐户/urls/py 中
from django.urls import path
from .views import UserView, AuthenticationView
urlpatterns = [
path('', UserView.as_view()),
path('auth/', AuthenticationView.as_view()),
]
但是即使我在 settings.py 文件中将 Debug 选项更改为 True,它仍然会返回 404 的基本 Django 404 页面
【问题讨论】: