首页 > 解决方案 > 如何在 Django Oscar 2.0 中正确分叉应用程序

问题描述

我正在尝试对结帐应用程序中的 mixin.py 文件进行细微修改(具体来说,尝试注释掉其中的行,如此 stackoverflow 帖子OrderPlacementMixin中所述,在成功订购后自动发送电子邮件)。但是,我似乎无法让 oscar 认出我的叉子。我已经按照此处列举的步骤进行操作,但没有运气。

这是我已经完成的步骤

custom_apps1)在项目根目录下创建一个目录,__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

在此处输入图像描述

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

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

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

标签: pythondjangodjango-oscar

解决方案


Oscar 2.0 应用程序配置是扩展的Django 应用程序配置

看起来你的分叉应用程序模块没有default_app_config指定,所以你应该添加一个,或者INSTALLED_APPS使用它的应用程序配置类的虚线路径:custom_apps.checkout.apps.CheckoutConfig而不是custom_apps.checkout.


推荐阅读