这是我的项目结构:
.
├── connectapp
│ ├── __init__.py
│ ├── __pycache__
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── djangoproject
│ ├── __init__.py
│ ├── __pycache__
│ ├── asgi.py
│ ├── djangoproject.sqlite3
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── djangoproject.sqlite3
├── hackerapp
│ ├── Controllers
│ ├── Models
│ ├── Serializers
│ ├── __init__.py
│ ├── __pycache__
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ └── tests.py
├── manage.py
└── requirments.txt
当我在顶层文件夹中执行以下操作时:
python3 manage.py migrate hackerapp
我得到这个:
djangoproject/djangoproject/urls.py", line 19, in <module>
from ..hackerapp.Controllers import PersonViewSet, DepartmentViewSet
ImportError: attempted relative import beyond top-level package
对我来说,看起来很重要,但事实并非如此,有人能告诉我为什么吗?
我猜(?)migrate hackerapp
是manage.py脚本的cli参数。该错误表示顶层文件夹不是一个包。要使它成为一个包,添加一个(空的)__init__.py
文件,然后从该文件夹中运行:
python -m manage migrate hackerapp # note no .py