非标准位置中带有models.py的Django应用程序

非标准位置中带有models.py的Django应用程序,django,Django,我刚刚开始编写一个代码库,我加入的团队正在从使用Django 1.4升级到Django 1.8。随着这一变化,它正在被重组为单独的应用程序,并且布局正在以各种方式改变 INSTALLED\u APPS有一些应用程序,让我们称它们为foo和bar,但是它们的models.py文件已放入db子目录,即foo/db/models.py 可以使用foo.db中的从代码(例如视图)访问这些模型。模型导入SomeModel,这似乎是可行的 然而,从我对第2阶段的阅读来看,在应用程序加载过程中找不到foo/d

我刚刚开始编写一个代码库,我加入的团队正在从使用Django 1.4升级到Django 1.8。随着这一变化,它正在被重组为单独的应用程序,并且布局正在以各种方式改变

INSTALLED\u APPS
有一些应用程序,让我们称它们为
foo
bar
,但是它们的
models.py
文件已放入
db
子目录,即
foo/db/models.py

可以使用foo.db中的
从代码(例如视图)访问这些模型。模型导入SomeModel
,这似乎是可行的

然而,从我对第2阶段的阅读来看,在应用程序加载过程中找不到
foo/db/models.py而不是
foo/models.py
中定义的模型,这将导致各种问题

是否可以使用自定义的
AppConfig
或以其他方式支持
models.py
的此非标准位置


澄清一下,我认为在非标准位置尝试使用
models.py
是个坏主意;确认后,我将帮助团队的其他成员进行论证。

模型的子模块名是硬编码的,它是Django在初始化过程中导入的唯一模块

但是,您可以在
models.py
文件中轻松导入模型,以确保在正确的时间导入模型。如果所有应用程序的模型都是在
foo.db.models
中定义或导入的,您可以简单地使用:

# foo/models.py
from foo.db.models import *