我在Django 1.8上。与其说我所有的模型都在一个models.py
文件中,不如说我把它们放在一个看起来像这样的包中:
models/
- __init__.py
- Album.py
- Artist.py
但是Django的makemigrations
命令似乎只有在应用程序只有一个models.py
文件时才有效。运行django-admin help makemigrations
不会提示我可以传递给命令以实现所需的其他选项。此外,我在SO上看到的所有其他问题和答案都涉及South,这与Django 1.8不兼容。
那么解决方法是什么呢?
在多个文件中横向拆分django模型是一种有效的方法。在这里可以找到一个很好的解释。
Django在models
模块中查找您的模型,该模块可以是一个文件或一个有效的python包。
如果您有一个有效的python包(一个包含__init__.py
文件的目录(,它将尝试基于__init__.py
的内容来发现模型。
确保您的__init__.py
文件如下所示:
from Album import Album
from Artist import Artist
然后django应该正确地发现你的模型。
在models.py
中
添加。
# myproject/app/models.py:
from models/Album.py import *
from models/Artist.py import *
关于django-south的注意事项:从django-1.7迁移已经开始支持。请检查迁移。