在没有 South 的情况下迁移包层次结构中的模型
Migrate models in package hierachy without South
我正在使用 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 不兼容。
那么解决方法是什么?
在你的models.py
添加。
# myproject/app/models.py:
from models/Album.py import *
from models/Artist.py import *
关于 django-south: From django-1.7 migrations has been started supported. Please check Migrations 的注意事项。
在多个文件中水平拆分 Django 模型是一种有效的方法。可以找到很好的解释 here.
Django 在 models
模块中查找您的模型,它可以是文件或有效的 python 包。
如果您有一个有效的 python 包(一个包含 __init__.py
文件的目录),它将尝试根据 __init__.py
.[=16= 的内容发现模型]
确保您的 __init__.py
文件如下所示:
from Album import Album
from Artist import Artist
然后 django 应该正确地发现你的模型。
我正在使用 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 不兼容。
那么解决方法是什么?
在你的models.py
添加。
# myproject/app/models.py:
from models/Album.py import *
from models/Artist.py import *
关于 django-south: From django-1.7 migrations has been started supported. Please check Migrations 的注意事项。
在多个文件中水平拆分 Django 模型是一种有效的方法。可以找到很好的解释 here.
Django 在 models
模块中查找您的模型,它可以是文件或有效的 python 包。
如果您有一个有效的 python 包(一个包含 __init__.py
文件的目录),它将尝试根据 __init__.py
.[=16= 的内容发现模型]
确保您的 __init__.py
文件如下所示:
from Album import Album
from Artist import Artist
然后 django 应该正确地发现你的模型。