Django:我可以在另一个应用程序的子文件夹中有一个应用程序吗?

时间:2010-01-07 07:05:40

标签: django

我试图将一个应用程序放在另一个应用程序中(外部应用程序是内部的应用程序,因此以这种方式定位它们是有意义的),并且它不会为该内部应用程序中的模型创建表。这是正常的吗? (该应用已安装,并已向管理员注册)

1 个答案:

答案 0 :(得分:5)

Django通过导入models设置中每个包的INSTALLED_APPS模块来加载模型。例如,INSTALLED_APPS设置为('django.contrib.admin', 'django.contrib.comments', 'spam.ham', and 'eggs'),Django将从django.contrib.admin.modelsdjango.contrib.comments.modelsspam.ham.modelseggs.models导入模型。

如果您只在INSTALLED_APPS列出您的外部应用程序(我们假设它的名称为eggs),则只会导入和创建eggs.models中的模型。要从内部应用中安装模型,您还需要将其添加到INSTALLED_APPS,例如eggs.inner_app,以便导入eggs.inner_app.models。 (为了方便外键,我很确定如果您将模型从一个应用程序导入到另一个应用程序的models.py文件中,则只会创建正在扫描的models.py文件中定义的模型。)