【发布时间】:2019-07-02 12:55:23
【问题描述】:
我已经设置了一个 django-oscar 项目,我正在尝试配置 URL。我的目标是将/catalogue 更改为/catalog。
根据我在myproject/app.py 中添加的app.py 的文档
myproject/app.py
from django.conf.urls import url, include
from oscar import app
class MyShop(app.Shop):
# Override get_urls method
def get_urls(self):
urlpatterns = [
url(r'^catalog/', include(self.catalogue_app.urls)),
# all the remaining URLs, removed for simplicity
# ...
]
return urlpatterns
application = MyShop()
myproject/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'),
]
项目服务器运行没有任何错误,但是当我尝试localhost:8000/catalog时,我得到了
/catalog/ 'customer' 处的 NoReverseMatch 不是已注册的命名空间。
预期的输出是localhost:8000/catalog 应该返回目录页面。
【问题讨论】:
-
您是否也覆盖了模板和设置? oscar 默认模板将引用您的自定义 url_patterns 中可能缺少的许多视图。参见例如github.com/django-oscar/django-oscar/blob/master/src/oscar/… 如果您不自定义基本模板、仪表板导航、主页、登录 URL 等,则必须提供许多视图名称...
-
我没有覆盖任何模板,也没有派生任何应用程序。它只是一个默认的奥斯卡安装。在我配置目录 URL 时是否需要分叉目录应用程序?
标签: django django-oscar