我已升级到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
等
然而,我仍然收到警告,无法弄清楚我错过了什么。如何获取导致DeprecationWarning的代码中的实际模块和行?
答案 0 :(得分:23)
您可以使用warnings模块引发DeprecationWarning
的错误。
暂时将以下代码段添加到项目urls.py
的顶部:
import warnings
warnings.simplefilter('error', DeprecationWarning)
DeprecationWarning
现在会引发错误,因此如果debug=True
您将获得熟悉的黄色Django错误页面以及完整的回溯。
一旦您追踪了弃用警告的来源,请记得删除该代码段!请注意,它可能是导致弃用警告的第三方应用,而不是您自己的代码。
如果您是警告模块的新手,您可能会发现page on Python module of the week比Python文档更容易介绍。
答案 1 :(得分:10)
您也可以在命令行中执行此操作,这样您就不需要修改代码。例如:
python -We manage.py runserver --traceback
官方文件是here。您可以使用缩写,e
中的-We
代表将警告转换为error
。