我是 2 Scoops of 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
└── ...