在Django中获取另一个错误:在django中捕获NoReverseMatch错误

时间:2011-02-22 11:22:52

标签: python html django url views

我似乎在Django中传递参数有另一个问题。我似乎得到了一个Caught NoReverseMatch错误。

Caught NoReverseMatch while rendering: Reverse for 'tiptop.views.service_order2' with arguments '('', 17L, 1)' and keyword arguments '{}' not found

它到达client_id和service_type但不到order_no。我不太确定有什么问题,但它抱怨order.pk参数。

#urls
(r'^quote/service_order/(?P<client_id>\d+)/(?P<order_no>\d+)/(?P<request_type>\d+)/$', views.service_order2),

#views.py
def service_order2(request, client_id = 0, order_no = 0, request_type = 1):
    # A lot of code
    order=request.session['order']
    return render_to_response('service_step1__2nd.html', {'contacts':contacts, 'addresses':addresses, 'title':title, 'service_list':service_list, 'date_type':date_type, 'address_type':address_type, 'order':order}, context_instance = RequestContext(request))

此模板包含模板标记链接,假设转到service_step1__2.html模板

<input type="submit" value="Request Delivery" onclick="change_action('{% url tiptop.views.service_order2 order.pk client.pk 1 %}')"/>

1 个答案:

答案 0 :(得分:0)

由于某种原因,您的order对象没有pk值 - 可能是一个新的未保存的实例。所以它将一个空字符串作为URL的第一个参数传递,并且无法匹配期望该位置有数字的service_order2网址。