2

我收到以下错误:

Caught NoReverseMatch while rendering: Reverse for 'satchless-checkout-prepare-order' with arguments '()' and keyword arguments '{}' not found.

但我satchless.contrib.checkout.common在我安装的应用程序中有。内satchless.contrib.checkout.common是一个urls.py包含:

from django.conf.urls.defaults import patterns, url

from .views import confirmation, prepare_order, reactivate_order

urlpatterns = patterns('',
    url(r'^prepare/$', prepare_order, {'typ': 'satchless_cart'},
        name='satchless-checkout-prepare-order'),
    url(r'^(?P<order_token>\w+)/confirmation/$', confirmation,
        name='satchless-checkout-confirmation'),
    url(r'^(?P<order_token>\w+)/reactivate/$', reactivate_order,
        name='satchless-checkout-reactivate-order'),
)

为什么我无法{% url satchless-checkout-prepare-order %}从我的模板中调用?

4

2 回答 2

3

你有没有从你的根 urlconf 中包含它?

在你的主 urls.py 文件中是这样的:

url(r'^foo/' include('satchless.urls')),
于 2011-07-02T17:31:59.193 回答
2

您不必包含satchless.contrib.checkout.common在您的 INSTALLED_APPS 中。它不是真正的应用程序,它是 python 包,其中包含用于多步和单步结帐应用程序的常见视图/装饰器。

如果您查看 satchless/contrib/checkout/multistep/urls.py 或 satchless/contrib/checkout/singlestep/urls.py,您可以看到两者都包括来自 common/urls.py 的模式:


from ..common.urls import urlpatterns

urlpatterns = urlpatterns + patterns('',
...

您要做的是选择结帐方法(比如说多步),将其添加到 INSTALLED_APPS 并包含适当的 url:


settings.py:

INSTALLED_APPS = (
...
    'satchless.contrib.checkout.multistep',
...
)


urls.py:

urlpatterns = patterns(
...
    url('^checkout/', 'satchless.contrib.checkout.multistep.urls')
...
)
于 2011-07-10T17:35:48.173 回答