Django- NoReverseMatch.反向''带参数'(2,)'和关键字参数'{}'未找到.尝试过0种模式:[]

Dea*_*oke 4 python django django-templates

我正在尝试将模板文件中的值传递给Django中views.py文件中的函数.

我的项目结构如下 -

myproject/
    manage.py
    myproject/
        __init__.py
        urls.py
        wsgi.py
        views.py
        settings.py
    orders/
        __init__.py
        models.py
        views.py
        urls.py
        tests.py
    restaurant/
        __init__.py
        models.py
        views.py
        urls.py
        tests.py

     requirements.txt
Run Code Online (Sandbox Code Playgroud)

这是我的templates/menu.html档案 -

...
...    
{% for id,image,menu in imageList %}
    <div style = "display:inline-block">
        <img src="{{ MEDIA_URL }}{{ image }}">
        <p>{{ menu }}</p>
        <a href="{% url 'addCart' id %}">+</a>
        <a href="">-</a>
    </div>
{% endfor %}
...
...
Run Code Online (Sandbox Code Playgroud)

orders/urls.py是-

....
from orders.views import add_to_cart

urlpatterns = patterns('',
    url(r'^add/(?P<product_id>\d+)$', add_to_cart, name ='addCart'),
)
Run Code Online (Sandbox Code Playgroud)

根源urls.py是 -

from orders.views import *

urlpatterns = patterns('',
    url(r'^$', menu),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^orders/', include('orders.urls', namespace = "addCart")),
)
Run Code Online (Sandbox Code Playgroud)

最后,orders/views.py如下 -

def add_to_cart(request, product_id):
    product = Inventory.objects.get(id=product_id)
    ....
Run Code Online (Sandbox Code Playgroud)

执行此操作时,调用该menu.html页面的主页会出现错误 -

Reverse for 'addCart' with arguments '(2,)' and keyword arguments '{}' not found. 0 pattern(s) tried: []

它说错误是在模板渲染期间,特别是在线 -

<a href="{% url 'addCart' id %}">+</a>

我尝试了很多不同的解决方案,但似乎没有任何效果.我也试过orders:addCart在标签中使用.BUt它不起作用.是因为我从orders应用程序导入的视图格式错误了吗?谢谢.

knb*_*nbk 5

您的网址位于命名空间中'addCart',因此您必须在撤消网址时指定:

{% url 'addCart:addCart' id %}
Run Code Online (Sandbox Code Playgroud)