解耦django应用程序 - 布局项目的最佳实践

Guy*_*den 1 django decoupling django-apps

我正在开发一个包含多个应用程序的项目,并希望包含新闻报道的新闻应用程序.

但是,我想将新闻故事链接到我的自定义应用程序中的对象,但使用开源新闻应用程序来运行新闻.

目前,我只是通过攻击所选的新闻应用程序来添加与我的模型的ForeignKey关系.

即一个小部件应用程序,具有小部件模型

然后是一个新闻应用程序,其入口模型直接链接到我的小部件模型

有一个更好的方法吗?因为如果我想用最新版本更新新闻应用程序,它显然会覆盖我的黑客.

我可以从我的自定义模型获得链接,但工作流程应该是真的

  1. 添加新闻文章
  2. 选择一个小部件将其链接到

  1. 添加新闻文章,保存
  2. 找到要将其链接到的小部件
  3. 链接回到新闻文章

Mon*_*lik 5

我认为你可以拥有一个从外部应用程序中继承模型的模型.有点像:

MyNewsArticle(ExternalAppNewsArticle):
    object = models.ForeignKey(MyObject)
Run Code Online (Sandbox Code Playgroud)

只要你添加东西而不是丢弃东西,这应该有效.如果外部应用程序中的模型已声明任何自定义管理器,则必须小心,因为默认情况下Django不会继承它们.您可能需要在自己的模型中再次声明它们.