You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Oscar 2.0:Fork Checkout应用后无法运行的问题求助

解决Oscar自定义Checkout App的AppNotFoundError问题

看起来你是在按Oscar的自定义App流程操作,但不小心踩了几个常见的小坑。我来帮你一步步排查解决:

1. 检查自定义Checkout App的继承配置

首先打开custom_apps/checkout/apps.py,确认你的CheckoutConfig类正确继承了Oscar的核心Checkout配置,且name属性设置无误:

from oscar.apps.checkout.apps import CheckoutConfig as CoreCheckoutConfig

class CheckoutConfig(CoreCheckoutConfig):
    name = 'custom_apps.checkout'

这个继承是Oscar复用原App功能的核心,如果这里写错,Oscar就找不到calculators这类依赖模块。

2. 用Oscar的get_core_apps()管理核心App

别手动修改INSTALLED_APPS替换原Checkout App,Oscar推荐用get_core_apps()函数来完成替换,这样能保证内部机制正常运转。修改settings.py里的INSTALLED_APPS部分:

from oscar import get_core_apps

INSTALLED_APPS = [
    # 保留你的其他Django App,比如django.contrib.admin等
    'django.contrib.admin',
    'django.contrib.auth',
    ...
] + get_core_apps(['custom_apps.checkout'])

这样就不用手动注释oscar.apps.checkout了,get_core_apps会自动用你的自定义版本替换原核心App。

3. 确保custom_apps在Python搜索路径中

Django需要能找到你的custom_apps目录,在settings.py开头添加以下代码,把它加入Python的搜索路径:

import os
import sys

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'custom_apps'))

4. 完善__init__.py的配置

确认custom_apps/checkout/__init__.py中有以下内容,让Django正确加载你的App配置:

default_app_config = 'custom_apps.checkout.apps.CheckoutConfig'

如果这个文件是空的,直接添加上面这行代码即可。

5. 验证App是否能被正确识别

先运行以下命令检查Django是否能正常识别你的自定义App:

python manage.py check

如果没有报错,再启动服务器试试:

python manage.py runserver

做完这些步骤,你的自定义Checkout App应该就能正常运行了,之后你就可以安心修改mixin.py里的邮件发送代码啦。

内容的提问来源于stack exchange,提问作者B B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:43:57