プロジェクトをより適切に整理できるかどうかを確認したいときに、アプリケーションは正常に機能していました。このチュートリアルを読みました djangoプロジェクトの構築について.
私のプロジェクト構造の前は次のとおりでした:
- Camucamu
- 本
- admin.py
- models.py
- views.py
- __init__。py
- 静的
- テンプレート
- urls.py
- views.py
- settings.py
- wsgi.py
- __init__。py
- 本
私がやりたかったのは、booksアプリをappsフォルダーに移動することでした。したがって、私はそれを行い、プロジェクト構造を次のように変更しました:
- Camucamu
- アプリ
- 本
- admin.py
- models.py
- views.py
- __init__。py
- 本
- 静的
- テンプレート
- urls.py
- views.py
- settings.py
- wsgi.py
- __init__。py
- アプリ
次に、views.pyとadmin.pyのインポートを変更しました books.modelsからapps.books.modelsへ。 私も変わりました INSTALLED_APPS
本からapps.booksへのsettings.pyで。
次にsyncdbを実行しようとすると、次のエラーが発生します。
raise ImproperlyConfigured("ImportError %s: %s" % (app, e.args[0]))
django.core.exceptions.ImproperlyConfigured: ImportError apps.books: No module named apps.books
アプリを見つけられなくなったので、ここで何をめちゃくちゃにしていますか?
回答:
回答№1は4アプリフォルダーに __init__.py
ファイルなので、Pythonモジュールとして認識できません
回答№2の場合は1
次のリストの最後のポイントは引用されていないため、同じガイドに従って同じエラーが発生しました。次の変更を行ったことを確認してください。
- ブランクを作成する
__init__.py
appsフォルダー内のファイル(pythonがパッケージとして認識するために必要) 外部アプリを参照する場所にインポートステートメントを更新します。
from projectname.apps.appname.models import YourModel, YourOtherModel
内部
settings.py
編集INSTALLED_APPS
次のようになります。INSTALLED_APPS = ( ... # apps "projectname.apps.appname1", "projectname.apps.appname2", )
これはガイドで指定されていません: あなたのすべて
urls.py
ファイル、更新urlpatterns
!前:
# client views urlpatterns += patterns("appname", ... )
後:
# client views urlpatterns += patterns("projectname.apps.appname", ... )
最後に、呼び出して変更を更新することを忘れないでください
python manage.py syncdb
それが助けられたと願っています。