首页 > 解决方案 > 如何在 Django Oscar 中自定义复杂的 Url 模式

问题描述

我已经建立了一个 Django-oscar 项目,并且正在尝试配置 U​​RL。我的目标是将 /checkout/shipping-address/ 更改为 /checkout/billing-address/

根据文档,我在 myproject/app.py 添加了 app.py

我的项目/app.py

from django.conf.urls import url, include
from oscar import app


class MyShop(app.Shop):
    def get_urls(self):
        urls = super(MyShop, self).get_urls()
        for index, u in enumerate(urls):
            if u.regex.pattern == r'^catalogue/':
                urls[index] = url(r'^product/', include(self.catalogue_app.urls))
            elif u.regex.pattern == r'^basket/':
                urls[index] = url(r'^cart/', include(self.basket_app.urls))
            elif u.regex.pattern == r'^checkout/shipping-address/':
                urls[index] = url(r'^checkout/billing-address/', include(self.checkout_app.urls))
                break
        return urls


application = MyShop()


我的项目/urls.py

from django.conf.urls import url, include
from django.contrib import admin
from . import views
from .app import application

urlpatterns = [
    url(r'^i18n/', include('django.conf.urls.i18n')),

    url(r'^admin/', admin.site.urls),

    url(r'', application.urls),

    url(r'^index/$',views.index, name = 'index'),
]

如何将 Checkout/shipping-address/ 更改为 checkout/billing-address/?

标签: pythondjangoe-commercedjango-urlsdjango-oscar

解决方案


推荐阅读