0

我目前正在头脑风暴关于在 Django 中构建一个现有的 PHP CodeIgniter 项目。我已经浏览了一些文档,并做了一些在线教程来测试它是如何工作的,并且真的被它迷住了。

我目前面临的理论设计问题是我的想法;应用程序将相互依赖,但 Django 文档本身声明它的应用程序应该是可插入的。

问题是我有一个产品应用程序,它具有不同的子属性,如颜色、组、模型(外键关系)。现在我开始考虑如何使用我的Invoices应用程序,但我立即注意到Invoices应用程序将需要Products应用程序中的产品。

我想知道其他人如何在他们的 Django 项目中做到这一点?我是否需要重新考虑我设计整个应用程序(产品、发票、订单、交付、电子邮件等)的方式以及它们如何单独链接?

我会告诉 Django 我的Invoices应用程序需要初始化我的Products应用程序,还是我完全改造这种情况,有一个类似于ERP应用程序的东西,将所有这些部分作为自己的模型来容纳?


最后,我想让我的前台也转换为 Django(网上商店)并访问我的后台(ERP)产品。我也想知道那时我将如何整合它。

4

1 回答 1

2

我不太确定你在问什么,但这里有一些技巧,基于一些来之不易的经验教训。

  1. 应用程序应该做件事,而且只做一件事。如果句子中没有三四个“和”就无法描述您的应用程序的功能,那么您需要重新考虑您的应用程序。

  2. 模型与应用程序绑定;但这并不意味着您不能在应用程序 B 中使用应用程序 A 中的模型。模型本身不是应用程序;您不能说“具有不同子属性的产品应用程序”

  3. 如果需要,您可以拥有具有模型但没有视图的应用程序。没有要求应用必须提供视图。

  4. 保持您的视图简单,您的模型丰富,并且对于您的应用程序,您可能会有许多用作帮助程序的实用程序脚本,这很好并且值得鼓励。您不希望视图中有很多复杂的逻辑,并且您确实不希望模板中有很多逻辑。

当 django 文档声明应用程序是可插入的时,这意味着应用程序应该是独立的;他们所有必需的依赖项(模板、url、视图、模型)都应该包含在应用程序中,这样你就可以发布它,人们可以下载和集成你的应用程序,而影响最小。1.5 的发布在教程中增加了一个新的部分如何编写可重用的应用程序,这应该提供更多的洞察力。

我认为一个好的可插拔应用程序可以很容易地“链接在一起”来解决问题。

于 2013-05-12T17:14:31.740 回答