2017-03-17 158 views
1

我不知道为什么会有什么问题,他们能帮我吗?事先感谢,问候!在模板在线路74渲染admindata.html,错误NoReverseMatch在Django

Reverse for 'entregado' with arguments '()' and keyword arguments '{'cod_experto': 'ASE-0048', 'id_pedido': 1770}' not found. 1 pattern(s)  tried: ['solicitar/confirmar/(?P<id_pedido>\\d+)/(?P<cod_experto>\\d+)/$'] 

错误:

<td><a href="{% url "usuario:entregado" id_pedido=ped.id cod_experto=ped.articulo.cod_experto %}" method='GET' type="submit" class="btn btn-success pull-right" value="editar" onclick="document.location.reload();"/>Entregar</a></td> 

全球网址:

urlpatterns = [ 
# Examples: 
url(r'^solicitar/', include(urls, namespace="usuario")), 
] 

网址APP:

urlpatterns = [ 

url(r'^confirmar/(?P<id_pedido>\d+)/(?P<cod_experto>\d+)/$', login_required(Update_stock), name='entregado'), 
] 

和看法。 py:

def Update_stock(request, id_pedido, cod_experto): 
if request.method == 'GET': 
    pedido = Pedido.objects.get(id=id_pedido) 
    articulo = Articulo.objects.get(id=cod_experto) 
    articulo.stock -= pedido.cantidad 
    stock.save() 
return render(request, 'admindata.html', {'pedido':pedido, 'articulo':articulo}) 
+0

你需要发布全球'urls'的'import'语句。在您发布的内容中看不到任何错误。 –

+0

全球网址是不是问题,因为他们与我拥有的其他人完美地工作,除了我抛出那个错误 –

回答

2

cod_experto值是 “ASE-0048”,这不符合正则表达式\d+ - 即只匹配整数。

如果您希望能够接受这样的价值观,你需要改变你的正则表达式:

r'^confirmar/(?P<id_pedido>\d+)/(?P<cod_experto>[\w-]+)/$', 
+0

我仍然得到相同的错误 –

+0

谢谢,先生。你是一个天才。 –