gpt4 book ai didi

python - django-oscar 中的用户货到付款

转载 作者:行者123 更新时间:2023-12-01 03:46:28 25 4
gpt4 key购买 nike

我正在使用 django-oscar 从事电子商店项目,并尝试添加 COD 支持。我正在使用django-oscar-cash-on-delivery .

我做了steps ,你可以看到我的配置:

THIRD_PARTY_APPS = [
'jet.dashboard',
'jet',

'axes',
'cashondelivery',
'django_extensions',
'oscarapi',
'paypal',
'payu',
'rest_framework',
'robots',
'widget_tweaks',
'webpack_loader',
]

并创建了一个名为 apps 的应用程序并正确加载:

INSTALLED_APPS = THIRD_PARTY_APPS + PROJECT_APPS + [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
] + get_core_apps(
[
'apps.shipping'
]
)

apps 文件夹中,我创建了一个 apps.py 文件,其中包含以下代码:

from oscar.app import Shop

# from apps.checkout.app import application as checkout_app
from cashondelivery.app import application as checkout_app


class ApplicationShop(Shop):
checkout_app = checkout_app


application = ApplicationShop()

但我不明白为什么 Oscar 不向我展示采用货到付款方式的结帐模板。

这是我的结构文件夹: enter image description here

谁能帮我解决这个问题吗?

最佳答案

django-oscar项目中集成货到付款有两种方式:

  1. 覆盖结帐应用程序:
    在这种情况下,有必要覆盖结帐模板,因为默认情况下 Oscar 不会或无法获取 cashondelivery 结帐模板,至少是 payment_details。因此,首先您需要覆盖这些模板文件,然后创建一个应用程序并在其中添加一个 app.py 文件,您可以在其中将结帐应用程序覆盖为 cashondelivery documentation说。

    enter image description here

  2. 创建自定义 View 和结账应用:
    您可以在django-oscar-paypal集成包中看到一个将paypalOscar集成的沙箱示例。您可以在这个包中看到他们使用结帐应用程序来替换默认的结帐应用程序;在此应用程序中,它们覆盖 view.py 文件和 app.view 文件;覆盖模板并覆盖 app.py 文件。

因此,我们可以对 django-oscar-cash-on-delivery 执行相同的操作,因此:
A。如果您愿意,或者像您一样,可以在 apps 应用程序中创建一个名为 checkout 的新应用程序。该应用程序仅包含 View 和应用程序文件。 enter image description here

b.在 View 文件中,我们将放置货到付款views文件,现在它位于 sanbox 文件夹中。

c.在 checkout 内的应用程序文件中,我们声明 checkout 应用程序:

from oscar.apps.checkout import app
from .views import PaymentDetailsView

class CheckoutApplication(app.CheckoutApplication):
payment_details_view = PaymentDetailsView

application = CheckoutApplication()

d.最后,我们将结账应用程序声明为默认结账应用程序 documentation说。
e.我们确保应用程序覆盖默认的 checkout 应用程序,在设置中:

INSTALLED_APPS = + get_core_apps(
[
'apps.checkout',
'apps.shipping'
]
)

您现在可以在奥斯卡项目中使用货到付款方式付款。
我们建议使用第二种方式,因为您可以使用多种付款方式。

PD:
在新的主版本中,我们已将 views.py 文件移至沙箱文件夹中,因此第一个选项将不再起作用。但是,如果您希望它回来,请告诉我们!

关于python - django-oscar 中的用户货到付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38890232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com