djangoプロジェクトで管理セクションが正常に機能していますが、突然、このエラーが報告されます。
/admin/にあるViewDoesNotExist
Restaurants.views.questionをインポートできませんでした。ビューはモジュールrestaurants.viewsに存在しません。
フロントエンドはまだ正常に動作しています。
これを引き起こすためにどのような変更を加えたかわからない-それを修正する方法は?
これは通常、問題のビューが存在しないか、管理パネルからアクセスできないことを示しています。インポートしたか、必要に応じて含めましたか?
あなたの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 ステートメントを大幅に減らすことができ、循環依存のリスクが軽減されます。