修改第 3 方 django 项目

modifying 3rd party django projects

我已经到了使用许多第 3 方应用程序的地步,但我需要扩展它们。我正在尝试找出修改现有应用程序的最佳方法。过去我只是修改了站点包中的代码(知道它很糟糕),但它有明显的缺点。

现在我能得到的最接近的是分叉 github 回购,然后我在我的项目中创建一个应用程序,我连接到分叉的 github 回购。

问题是我分叉的是项目而不是应用程序。所以这意味着我有一个像这样的结构:project/app-project/app 在我 fork 之后。其他的东西也在app-project目录下,比如LICENSE, AUTHORS等

Project
--App1
----Code
--App2
----Code
--ForkedAppProject
----LICENCE
----AUTHORS
----ForkedApp
------Code

如果我只获取 App 目录中的代码,我可以修改它,但是我会失去项目的所有源代码控制(许可证、作者等),这就违背了分叉的目的开源应用程序。

我想设置它以便修改应用程序代码,但我正在修改以便我的更改可以为开源项目做出贡献。

没有必要在您的项目中放置分叉的应用程序。分叉和修改后,您可以将 ForkedApp 文件夹添加到 PYTHONPATH 或像这样构建您自己的包

python setup.py sdist

然后将其安装到您的 system/virtualenv 并更新 INSTALLED_APPS

最简单、最方便的方法是使用 pip --editable 选项。请参阅 pip 文档中的 “Editable” Installs