在我的Django应用程序中,我收到了404 Page Not Not响应,看起来它是由我的一个自定义模板标签中的某些逻辑引起的 - 但我不知道哪一个。
使用Django Debug Toolbar的Request Vars面板,我可以看到导致404的视图为go_back.utils._register_wrapped_view
- 这就是我所知道的来自我的go_back.utils
模板标签之一。
不幸的是,因为模板标签需要进行装饰,因此显示为_registered_wrapped_view
,我无法确定它是哪个标签,更不用说标签代码在问题发生的位置。 (标记代码是一个特殊的实用程序,可以在几个地方使用网址并调用resolve
,所以它并不明显。)
因此我不能使用正常的import pdb; pdb.set_trace()
方法,因为我不知道在哪里设置跟踪。
那么如何在404发生时让pdb中断,这样我才能看到通向该点的堆栈跟踪?
答案 0 :(得分:0)
尝试使用Django Debug Toolbar,它可以拦截重定向,适用于无法找到断点的位置。
在设置中确保您有
DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': True}
答案 1 :(得分:0)
旧问题,但有django-pdb,其中包含runserver的post mortem标志。它看起来没有很好的维护(2年前是最后一次提交),但它是简单的中间件,更新它不应该太难。
答案 2 :(得分:-1)
我不确定你是否知道这一点:
您可以尝试将import pdb; pdb.set_trace()
放在要调试的功能和开发服务器中。当该函数触发时,它将进入pdb
shell,您可以调试代码。