/ /アプリをネストされたフォルダーに移動した後のImportError-django

アプリをネストされたフォルダーに移動した後のImportError-django

プロジェクトをより適切に整理できるかどうかを確認したいときに、アプリケーションは正常に機能していました。このチュートリアルを読みました 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

それが助けられたと願っています。