Django 如何处理NoReverseMatch错误,反向为';项目订单';带参数';()';和关键字参数';{}';找不到

Django 如何处理NoReverseMatch错误,反向为';项目订单';带参数';()';和关键字参数';{}';找不到,django,django-urls,Django,Django Urls,我遇到了一个NoReverseMatch错误 找不到参数为“()”且关键字参数为“{}”的“item_order”的反转。 我有一个在模板运行时调用的视图 def show_item(request,id): # need to evaluate the HTTP method if request.method == 'POST': a = Item.objects.get(pk=id) form = forms.PartialOrderItem

我遇到了一个NoReverseMatch错误
找不到参数为“()”且关键字参数为“{}”的“item_order”的反转。
我有一个在模板运行时调用的视图

def show_item(request,id):
    # need to evaluate the HTTP method
    if request.method == 'POST':
        a = Item.objects.get(pk=id)
        form = forms.PartialOrderItemForm(request.POST,instance=a)
        # check validation of posted data
        if form.is_valid():

            order.add_to_order(request)
            # if test cookie worked, get rid of it
            if request.session.test_cookie_worked():
                request.session.delete_test_cookie()
            url =urlresolvers.reverse('order_index')
            # redirect to order page
            return HttpResponseRedirect(url)
    else:
        # it's a GET, create the unbound from. Note request as a Kwarg
        form = forms.PartialOrderItemForm(request.GET)
    # set the test cookie on our first GET request
    request.session.set_test_cookie()
    context={
#       'categories':categories,
        'form':form,
#       'menu':menu,

    }
    return render_to_response('item.html',context,context_instance=RequestContext(request))
当这个视图运行时,在某个点上,它调用这个函数

def add_to_order(request):  
#   import pdb; pdb.set_trace()
    postdata = request.POST.copy()
    # get item slug from post data, return blank if empty
#   item_slug = postdata.get('item_slug','')
    #get quantity added, return 0 if empty
    quantity = postdata.get('quantity',0)
    # fetch the item or return  missing page error_message
    i = get_object_or_404(Item)
    # get items in order
    order_items = get_order_items(request)
    item_in_orders = False
    # check to see if item is already in order
    for order_item in order_items:
        if order_item.item.id == i.id:
            #update the quantity if found
            order_item.augment_quantity(quantity)
            item_in_orders = True
    if not item_in_orders:
        # creat and save a new order item
        oi = OrderItem()
        oi.order_id = _order_id(request)
        oi.quantity = quantity
        oi.item = i
        oi.save()
URL.py

from .views import show_item, show_order,get_category
from django.conf.urls.defaults import patterns, include, url


urlpatterns = patterns('',
    url(r'^$',get_category, name="item_order_home"),
    url(r'^your_order/$',show_order,name="order_index"),
    url(r'^item/(?P<id>\w+)/$', show_item, name = "item_order"),
#   url(r'^menu/$',get_category,name = "f4l_menu"),
)
from.views导入显示项目、显示订单、获取类别
从django.conf.url.defaults导入模式,包括url
urlpatterns=模式(“”,
url(r'^$',get_category,name=“item_order_home”),
url(r“^your\u order/$”,show\u order,name=“order\u index”),
url(r'^item/(?P\w+/$),show_item,name=“item_order”),
#url(r“^menu/$”,获取类别,name=“f4l\U menu”),
)
在模板中,下面是我所做的

{% for category in categories %}
 <h5> {{ category.title }} </h5>
  {% for item in category.item.all %}
   <li><a href="{% url item_order %}">{{item.name}}<span> {{item.price}}frw</span></li><a/>
  {% endfor %}
{% endfor %}
{%用于类别中的类别%}
{{category.title}}
{category.item.all%中的项的%s}
  • {{item.name}{{item.price}}frw
  • {%endfor%} {%endfor%}
    我想做的是,他们有几个项目,当我点击其中一个时,它会将我重定向到一个表单,在该表单中我会提交我想要购买的项目的数量,当我提交表单时,它会重定向到一个订单页面。
    但是我遇到了这个错误。

    您需要传递id值,因为您在url中指定了它

    {% url item_order item.id %}
    

    您需要传递id值,因为您在url中指定了它

    {% url item_order item.id %}
    

    嘿,查理,谢谢你,这很有效,但我在七分钟前不能接受答案。如果你不介意的话,我还有一个让我头疼的错误,我想这更多是我在视图中使用的逻辑。如果你不介意的话,我还有一个让我头疼的错误,我想这更多的是视图中使用的逻辑。你介意检查一下吗?我有时间会检查一下的