首页 > 解决方案 > Django 呈现一个“异常”页面,而不是一个可以帮助调试的页面

问题描述

Django 工作正常,突然我无法获得任何调试消息。我一直在注释掉我的代码以查看是哪个部分导致了这种情况,结果证明是我的 last_visit 中间件,它获取了用户最后一次访问该应用程序的时间。但为什么?它有什么问题?!

last_visit.py(我做的中间件)

from django.http import HttpResponse
from django.utils.timezone import now
from django.contrib.auth import get_user_model
User = get_user_model()


class SetLastVisitMiddleware(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if request.user.is_authenticated:
            User.objects.filter(id=request.user.id).update(last_visit=now())
        return self.get_response(request)

    def process_exception(self, request, exception):
        return HttpResponse("in exception")

设置.py:

MIDDLEWARE = [
    ...
    'users.get_request.RequestMiddleware',
    'users.last_visit.SetLastVisitMiddleware'
]

标签: javascriptpythondjangodebuggingdjango-templates

解决方案


您会看到错误的详细描述,因为您的 Django 设置文件中有 DEBUG = True。当它更改为 False 时,Django 将显示由处理程序为该状态代码生成的标准页面。我认为在你的情况下,DEBUG 设置为 false。尝试将其更改为 True。


推荐阅读