我正在开发一个Django应用程序,它是一个需要多个子应用程序保持整洁的大型系统。因此,我有一个顶级目录,它是一个Django应用程序(因为它有一个空的models.py
文件)和多个子目录,它们本身也是应用程序。Django子应用程序和模块结构
我以这种方式安排我的应用程序的原因是因为子应用程序是分开的,但它们永远不会在父应用程序之外使用。因此分开分发是没有意义的。
当安装了应用程序,设置文件必须包括这样的事情:
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
...这显然是不理想的。这也有一个令人讨厌的结果,即要求所有子应用程序都以其“内部”名称来引用(即subapp1
,subapp2
等)。例如,如果我想重置subapp1数据库表,我必须键入:
python manage.py reset subapp1
这是烦人,尤其是因为我有一个子应用程序称为core
- 这很可能是冲突与其他应用程序的名称当我的应用程序安装在用户的项目中时。
我是否完全错误地执行此操作,或者是否已经迫使这些“内部”应用程序以全名引用?
为什么这对您而言不是最理想的?你能澄清你想达到什么吗? – 2010-04-11 15:50:36
只是因为,为了安装我的“应用程序”,需要在父模块内的每个应用程序,所以它真的是数据的重复。另外,如果我们添加任何子应用程序,则必须将它们添加到每个安装的已安装应用程序列表中。 – 2010-04-11 19:38:21