我试图将一个应用程序放在另一个应用程序中(外部应用程序是内部的应用程序,因此以这种方式定位它们是有意义的),并且它不会为该内部应用程序中的模型创建表。这是正常的吗? (该应用已安装,并已向管理员注册)
答案 0 :(得分:5)
Django通过导入models
设置中每个包的INSTALLED_APPS
模块来加载模型。例如,INSTALLED_APPS
设置为('django.contrib.admin', 'django.contrib.comments', 'spam.ham', and 'eggs')
,Django将从django.contrib.admin.models
,django.contrib.comments.models
,spam.ham.models
和eggs.models
导入模型。
如果您只在INSTALLED_APPS
列出您的外部应用程序(我们假设它的名称为eggs
),则只会导入和创建eggs.models
中的模型。要从内部应用中安装模型,您还需要将其添加到INSTALLED_APPS
,例如eggs.inner_app
,以便导入eggs.inner_app.models
。 (为了方便外键,我很确定如果您将模型从一个应用程序导入到另一个应用程序的models.py
文件中,则只会创建正在扫描的models.py
文件中定义的模型。)