私は 2 Scoops の Django 1.8 リーダーです。第 29 章 (これらのランダムなユーティリティについて) では、core
一般的に使用されるコードを格納するアプリを作成することを提案しています。また、この構文を使用してコードをインポートできることも示唆しています。
例えば
from core.models import TimeStampedModel
この相対インポートは機能しないようです。私は使用してcookiecutter-django
おり、行う必要がありました:
from projectname.apps.core.models import TimeStampedModel
私はに追加しようとAPPS_DIR
しましたpath
:
sys.path.insert(str(APPS_DIR))
しかし、今では同じ名前の 2 つのモジュールがありnew_app
、projectname.apps.new_app
.
明示的なインポートを避けたいだけです。Installed Apps
インポートの競合を作成せずに python パスに含める方法はありますか? 外部アプリのインポートに関するベスト プラクティスは何ですか?
編集:プロジェクト構造を追加します
.
├── README.rst
├── manage.py
├── config
│ ├── __init__.py
│ ├── settings
│ │ ├── __init__.py
│ │ ├── common.py
│ │ ├── local.py
│ │ ├── test.py
│ │ ├── production.py
│ │ └── staging.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── projectname
│ ├── __init__.py
│ ├── apps
│ │ ├── __init__.py
│ │ ├── core
│ │ │ └── __init__.py
│ │ └── new_app
│ │ └── __init__.py
│ ├── static
│ │ └── ...
│ └── templates
│ └── ...
├── requirements
│ ├── base.txt
│ ├── local.txt
│ ├── production.txt
│ └── test.txt
└── tests
└── ...