Django-NoReverseMatch。对带有参数“(2,)”和关键字参数“{}”的“”进行反转,未找到。尝试了 0 种模式:[]

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

我正在尝试将模板文件中的值传递给 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

这是我的 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 %}
...
...

orders/urls.py是-

....
from orders.views import add_to_cart

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

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")),
)

最后,orders/views.py如下-

def add_to_cart(request, product_id):
    product = Inventory.objects.get(id=product_id)
    ....

执行此操作时,调用 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 。但它不起作用。是因为我从 orders 应用程序导入的视图格式错误吗?谢谢。

您的 url 位于命名空间 'addCart' 中,因此您必须在反转 url:

时指定
{% url 'addCart:addCart' id %}