Django生成了一个“内部异常”页面,而不是可以帮助调试的页面。

4

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")

settings.py:

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

2
没有看到你的实际代码,别人怎么能帮助你呢? - JPG
好的,我上传了我的settings.py和middlewares。 - user14387653
2
我认为这还不够... 请创建一个最小可复现示例,这样别人可以更快地帮助你!!! - JPG
我应该分享什么?!我甚至不知道为什么出现这个问题,我没有更改任何设置,也没有安装任何奇怪的包,我认为我的中间件没有任何问题,这个问题突然出现了,而我什么都没做!我的应用程序已经在生产环境中运行了两周,直到两天前我才开始看到这个问题。我应该分享哪一段代码?我会添加我的requirements.txt。 - user14387653
1个回答

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

2
它被设置为True,即使它是False,它也应该给出服务器错误500页面而不是这个页面。感谢您的帮助。 - user14387653

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接