【发布时间】:2009-09-16 21:17:42
【问题描述】:
我今天的第二个不太熟练的问题:我有一个安装了四个应用程序的 django 项目。当我运行 manage.py syndb 时,它只为其中两个创建表。据我所知,我的任何模型文件都没有问题,并且所有应用程序都在我的设置文件的 INSTALLED_APPS 中指定。 Manage.py syndb 似乎忽略了我的两个应用程序。
这两个“被忽略”的应用程序的独特之处在于模型文件从其他两个应用程序导入模型并将它们用作外键(不知道这是好还是坏的做法,但可以帮助我留下组织)。不过,我认为这不是问题,因为我注释掉了具有外键的模型并且仍然没有创建表。我被难住了。
更新:当我注释掉从其他应用程序导入模型文件的行时,syndb 会创建我的表。也许我不了解不同应用程序中的模型文件如何与其他应用程序相关联。我虽然可以通过简单地导入它来使用来自另一个应用程序的模型作为外键。不是真的?
【问题讨论】:
-
如果你对有问题的应用程序运行 manage.py sqlall [appname],你会得到任何输出吗?
-
好问题——不,我没有得到任何输出。但是,如果我更改应用程序文件夹的名称并运行 syncd,则会收到一条错误消息,指出无法找到更改后的应用程序。
标签: python django django-models django-syncdb