2012-05-14 21 views
2

我是Django的新角色。可以将Django项目目录结构更简单,有没有南?

但是,我对Django的目录结构有点困惑。比如我必须在不同的地方写出这么多的models.py,这可能会导致将来难以维护这个项目。我想让它更像真正的MVC结构,每个模型文件都放在模型目录中。

难道可以使用South来做到这一点吗?这似乎只看着models.py,还是应该考虑使用不同的迁移工具?

+0

每个django应用程序的一个models.py文件是硬连接到django。问题是,我可以用模型目录和视图目录等来构建我的项目... –

+0

是的,但是您需要在'models/__init __。py'中导入所有模型类。不仅南依靠'app.models.Model'方案。 – ilvar

+0

Real MVC没有多个型号。相反,它有一个*模型图层*,包含许多不同的对象,其中没有一个具有“模型”作为其名称的一部分。 –

回答

2

Django将代码组织成'apps',这就是为什么你有单独的models.py文件,我不认为有一种方法可以将它们全部放在一个目录中,因为每个应用程序都有它自己的Python包。但是,我通常构造我的代码的方式是为我的所有代码使用一个(或几个,如果它是一个更大的项目)应用程序,因为可以在单个models.py文件中包含与你要。

我不认为South会帮助你,但它会使管理你的迁移变得更容易,所以我会强烈推荐它。

2

我不认为在Django中有一个规定将所有模型放在一个地方。把所有的东西放在一个地方也是一个坏主意。因为每个应用程序都有自己的DB架构,并且将应用程序独立为满足可重用性因素是必需的。它更好地保持模型彼此隔离,附加到他们的应用程序,因为它有助于可重用性。

南不履行这一点。它只是跟踪你的Db迁移和灯具。

无论DB Schema的设计多么完美,南都会出现在图片中。

+0

Thanks guys!顺便说一下,是否可以自定义南来更改输入或输出文件? – suslov

+0

要清楚。哪些输入和输出文件... – Anshuma