1

djangoプロジェクトで管理セクションが正常に機能していますが、突然、このエラーが報告されます。

/admin/にあるViewDoesNotExist

Restaurants.views.questionをインポートできませんでした。ビューはモジュールrestaurants.viewsに存在しません。

フロントエンドはまだ正常に動作しています。

これを引き起こすためにどのような変更を加えたかわからない-それを修正する方法は?

4

2 に答える 2

2

これは通常、問題のビューが存在しないか、管理パネルからアクセスできないことを示しています。インポートしたか、必要に応じて含めましたか?

于 2013-02-10T06:55:39.140 に答える
0

あなたのquestionビューに関連するエラーが作成されたように見えます。それが管理を壊しています ( Could not import restaurants.views.question)。実際には管理者のエラーでも、restaurants.viewsモジュール本体の新しいバグでもありません。

私の推測では、循環インポートを作成したと思いrestaurants.viewsます。モジュールの上部にあるインポートを見てください。次に、インポート元の各モジュールを確認し、そのモジュールが からインポートされているかどうかを確認しますrestaurants.views

何も表示されない場合は、モジュールにインポートされたすべてのモデルのすべてのインポートをチェックし、restaurants.viewsそこにあるものを探します。

クラスベースのビューを使用して以来、これを数回見ました。明らかに、クラスベースのビューの要点は、それらを拡張できることです。これにより、循環依存が発生する可能性があります。アプリにいくつかのビューしかない場合を除き、1 つのファイルからすべてを分割してビュー ディレクトリを作成する傾向があります。

my_app
    views
        __init__.py
        view1.py
        view2.py
        view3.py

次に、次のインポートステートメントを追加して__init__.py、すべてが以前と同じように機能するようにします-

from view1 import View1
from view2 import View2
from view3 import View3

これにより、各ビュー モジュールの上部にある import ステートメントを大幅に減らすことができ、循環依存のリスクが軽減されます。

于 2013-02-10T07:32:34.067 に答える