1

在我的 Django 应用程序中,我收到一个 404 Page Not Found 响应,看起来它是由我的一个自定义模板标签中的某些逻辑引起的——但我不知道是哪一个。

使用 Django Debug Toolbar 的 Request Vars 面板,我可以看到导致 404 的视图go_back.utils._register_wrapped_view- 这就是我知道它来自我的go_back.utils模板标签之一的方式。

不幸的是,因为模板标签需要被修饰并因此显示为_registered_wrapped_view,所以我不知道它是哪个标签,更不用说问题发生在标签代码的哪个位置了。(标签代码是一个特殊的实用程序,它可以resolve在几个地方处理 url 和调用,所以它并不明显。)

因此我不能使用正常的import pdb; pdb.set_trace()方法,因为我不知道在哪里设置跟踪。

那么,当 404 发生时,如何让 pdb 中断,以便我可以看到导致该点的堆栈跟踪?

4

3 回答 3

0

尝试使用Django Debug Toolbar,它可以拦截重定向,适用于找不到添加断点的位置时。

在设置中确保你有

DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': True}
于 2012-08-28T07:51:41.560 回答
0

老问题,但是django-pdb有一个用于运行服务器的事后标志。它看起来维护得不好(2 年前是最后一次提交),但它是简单的中间件,更新它应该不会太难。

于 2014-04-29T14:36:16.587 回答
-1

我不确定你是否知道这一点:

您可以尝试放入import pdb; pdb.set_trace()您想要调试和开发服务器的功能。当该函数触发时,它将进入pdbshell,您可以调试代码。

于 2012-08-28T04:06:28.223 回答