Python 南方找不到我的模特
我在尝试将south添加到现有django项目时遇到困难。以下是我的情况: 我的项目叫做警报。以下是我的文件夹结构:Python 南方找不到我的模特,python,mysql,django,django-south,database-migration,Python,Mysql,Django,Django South,Database Migration,我在尝试将south添加到现有django项目时遇到困难。以下是我的情况: 我的项目叫做警报。以下是我的文件夹结构: djangoprojects/ alerts/ manage.py alerts/ __init__.py urls.py views.py models.py wsgi.py settings.p
djangoprojects/
alerts/
manage.py
alerts/
__init__.py
urls.py
views.py
models.py
wsgi.py
settings.py
common/
__init__.py
models/
__init__.py
models.py
文件alerts/alerts/models.py包含以下内容:
from common.models.models import *
换句话说,alerts/alerts/models.py所做的唯一一件事就是从alerts/common/models/models.py导入“真实”模型,其中有大量从过去的项目中创建的模型
我还有一个MYSQL数据库,我称之为“现有_数据库”。这是与我过去项目中的模型对应的数据库,该项目在另一台机器上运行。在另一台机器上,我使用mysqldump获取该数据库的sql文件,并将其复制到我的新机器上。然后我直接使用mysql在我的新机器上创建现有的_数据库。因此,现有的数据库应该与alerts/common/models/models.py中的模型匹配
所以接下来我浏览了文档,试图将south添加到alerts项目中。这就是我所做的:
如何实现这一点?尝试在模型的元类中设置“应用程序标签”。我有大量现有模型。我以前的项目不需要这样做。你是说我必须在每个模型上都这样做吗?我想问题是你的应用程序与项目同名,可能尝试重命名其中一个?命名与问题无关。运行“python manage.py startapp appname”创建项目时。它将创建appname项目,并创建appname作为项目中应用程序的名称。如果这是一个问题,那么startapp命令将不会执行此操作。@marc,您必须在以前的项目中执行此操作。Django无法识别在app/models.py之外定义的模型,因为您可以在许多关于将models.py分离到其他几个文件的帖子中找到这一点。最后,您还有一个问题,那就是您的models.py实际上并不在应用程序中,而是在另一个应用程序中名为
common
的文件夹中。这是另一个与app/models.py->app/models/\uuu init\uuuuu.py+
不同的地方,所以我并不奇怪它不起作用。尝试将common
添加到已安装的应用程序中。