我有一个问题,有多个应用程序试图在Django项目中覆盖相同的管理命令.
INSTALLED_APPS,或最后定义的应用程序?对于上下文,我试图得到django_pdb(参见github)更好地使用south和django.contrib.staticfiles.
我知道的最简单的答案是:构建您的项目,以便您可以更改其中一个项目并保留更改记录,以便您可以将其应用到未来的版本中。
对于我的项目,我喜欢:
/myproject
/lib
/app1
/app2
/app3
Run Code Online (Sandbox Code Playgroud)
然后显式地将 /lib 添加到 setup.py 中的路径中
import os
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))
import sys
lib_dir = os.path.join(PROJECT_PATH, 'lib')
if lib_dir not in sys.path[:4]:
sys.path.insert(1, os.path.join(PROJECT_PATH, 'lib'))
Run Code Online (Sandbox Code Playgroud)
与一般人相比,我更有可能选择一个应用程序,安装它,然后对其进行 10% 的更改,使其完全按照我想要的方式工作。
这样做的优点是:1) 大多数依赖项随代码一起提供,并在 GIT 中进行跟踪 2) 如果您在同一台计算机上运行多个应用程序,则系统范围内的更改不会意外导致应用程序中出现错误 3) 易于通过修订历史记录更改应用程序中的任何内容。
由于没有深入研究 South 的管理命令,也从未使用过 django_pdb,您的特定问题可能无法通过“制作本地副本并重命名其中一个”方法来解决,但我分享以防万一。
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |