我有一个应用程序,它正在变得相当大,做太多的事情作为一个单一的应用程序,所以我想把它分成2或3个“子应用程序”
问题是有一打的模型是相互链接的(外键,许多任意域,等等)
我读过很多次,应用程序应该是自我一致的,那么,有什么最佳实践将一个大的应用程序分成几个相互链接的应用程序吗?
-->从其他应用导入模型有多糟糕?
发布于 2015-03-17 17:47:38
我没有听说过一个最佳实践解决方案,但我通常会这样做,我会经常拆分应用程序:
步骤0-什么时候一个应用程序“太大”了?
应用程序应该是一个(独立的)逻辑单元。独立实际上是误导的,当然你可以有像django.conrib.auth
这样的依赖,你应该有的是交叉依赖。它们最终将导致循环导入。也就是说,你的应用程序可以变得很大,完全没有问题。如果您在组织代码时遇到问题,我可能会提醒您,每个模块都可以构建为一个包。您只需将models.py
拆分为models/__init__.py
和models/LOGICAL_UNITS.py
即可。
你应该拆分应用程序的唯一原因是你可以拆分,而不是因为你想拆分;)
第1步-概述
使用django_extensions的图形打印功能。
这应该会给你一个很好的概述,并可能帮助你找到所谓的“社区”。具有强交叉依赖关系的模型组。这些社区通常是一个非常好的应用程序。
第2步-命名:
如果你不能为你的新应用程序找到一个名字,它可能不是一个。
https://stackoverflow.com/questions/29095325
复制相似问题