22

Django 1.4にアップグレードしましたが、開発サーバーを実行すると、次の警告が表示されます。

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

DeprecationWarning:関数ベースの汎用ビューは非推奨になりました。代わりにクラスベースのビューを使用してください。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を引き起こしているコードの実際のモジュールと行を取得するにはどうすればよいですか?

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

コマンドラインでこれを行うこともできるので、コードを変更する必要はありません。例えば:

python -We manage.py runserver --traceback

公式ドキュメントはこちらです。略語を使用でき、 ein-Weは警告をに変換することを表しますerror

于 2013-10-17T16:27:29.200 に答える