如何在 Django Oscar 2.0 中正确地分叉应用程序

How to properly fork an app in Django Oscar 2.0

我正在尝试对结帐应用程序中的 mixin.py 文件进行小幅修改(具体来说,试图注释掉 OrderPlacementMixin 中的行,该行在成功订购后自动发送电子邮件为). However, I can't seem to get oscar to recognize my fork. I have already followed the steps as enumerated here 中有描述,没有运气。

这是我完成的步骤

1) 在项目根目录下创建一个custom_apps目录,里面有一个空的__init__.py文件

2) 运行 manage.py oscar_fork_app checkout custom_apps - 此命令生成 checkout 目录以及多个文件。这是终端输出。我还附上了目录结构的照片

(venv) work@pc:~/MyProjects/oscar2_project/frobshop$ ./manage.py oscar_fork_app checkout custom_apps
Creating package custom_apps/checkout
Creating app config
Creating models.py
Replace the entry 'oscar.apps.checkout.apps.CheckoutConfig' with 'custom_apps.checkout.apps.CheckoutConfig' in INSTALLED_APPS

3) 我在 settings.py 中的 INSTALLED_APPS 中注释掉了 'oscar.apps.checkout',并在 INSTALLED_APPS` 列表的末尾插入了 'custom_apps.checkout'

4) I 运行 python manage.py runserver,我得到异常 oscar.core.exceptions.AppNotFoundError: Couldn't find an Oscar app to import checkout.calculators from。在这一点上,我什至还没有尝试修改任何代码,但是,我的叉子已经拒绝 运行.

如果有人能指出我遗漏的任何步骤,我将不胜感激。我知道可以复制 oscar.apps.checkout 的所有内容,但我想避免这样做。

Oscar 2.0 应用程序配置已扩展 Django apps configs

您的分叉应用模块似乎没有指定 default_app_config,因此您应该 add one,或者在 INSTALLED_APPS 中使用其应用配置的虚线路径 class:custom_apps.checkout.apps.CheckoutConfig 而不是 custom_apps.checkout