22

我已经升级到 Django 1.4,现在当我运行我的开发服务器时,我收到以下警告:

/home/flc/venvs/myprj/lib/python2.6/site-packages/django/views/generic/simple.py:8:

DeprecationWarning:基于函数的通用视图已被弃用;改用基于类的视图。弃用警告

我已经找到了造成这种情况的大部分原因,并通过进行以下更改来修复它们:

django.views.generic.simple.direct_to_template => django.views.generic.base.TemplateView django.views.generic.simple.redirect_to => django.views.generic.base.RedirectView

ETC

但是,我仍然收到警告,无法弄清楚我错过了什么。如何在我的代码中获取导致 DeprecationWarning 的实际模块和行?

4

2 回答 2

23

您可以使用警告模块为DeprecationWarning.

暂时将以下代码段添加到项目的顶部urls.py

import warnings
warnings.simplefilter('error', DeprecationWarning)

现在DeprecationWarning将引发一个错误,因此如果debug=True您将获得熟悉的黄色 Django 错误页面以及完整的回溯。

找到弃用警告的来源后,请记住删除该片段!请注意,导致弃用警告的可能是第三方应用程序,而不是您自己的代码。

如果您不熟悉警告模块,您可能会发现本周 Python 模块页面比 Python 文档更容易介绍。

于 2012-09-04T16:21:50.493 回答
11

You can also do this on the command line so you don't need to modify your code. For example:

python -We manage.py runserver --traceback

The official doc is here. You can use abbreviations and the e in -We stands for convert warnings to error.

于 2013-10-17T16:27:29.200 回答