如何使用Django的Reverse與信息的可選參數?我不斷獲取Django HTTPResponseRedirect&Reverse與可選參數
views.py:
def cartForm(request, prod):
if request.method=="POST":
quantity = request.POST.get('quantity', False)
if quantity:
add_to_cart(request, prod, quantity)
return HttpResponseRedirect(reverse("cart"))
#if no quantity indicated, display error message
return HttpResponseRedirect(reverse('products.views.info', kwargs={'prod': prod, 'error':True}))
def info(request, prod, error=False):
prod = Product.objects.get(id=prod)
return render(request, "products/info.html", dict(product = prod, error=error))
urls.py:
url(r'^(?P<prod>\d+)/', "products.views.info", name='info'),
我不斷收到以下錯誤:
Reverse for 'products.views.info' with arguments '()' and keyword arguments '{'prod': u'2', 'error': True}' not found. 1 pattern(s) tried: ['products/(?P<prod>\\d+)/']
你確定你的網址不重複?匹配錯誤顯示的模式與您的'urls.py'代碼段顯示的模式不同。 –
@BurhanKhalid:Django允許在部分URL下包含url模式;這個模式被包含在「products /」下。 –
[Django使用reverse()重定向到依賴查詢字符串的URL的重定向](http://stackoverflow.com/questions/4477090/django-redirect-using-reverse-to-a-url-that-relies在一個查詢字符串) –