我不会在html页面中映射适当的url



当我点击这个url

<a href="/cart/pk">Cart<span>{{request.session.cart|length}}</span></a>

我得到错误"当前路径,购物车/,不匹配这些。">

所以请告诉如何映射正确的url

my url.py file:

path('cart/<int:pk>',views.cartitem,name='cart'),

我的cartitem.py文件:

def cartitem(request,pk):
cart=request.session.get('cart')
if cart is None:
cart=[]
for c in cart:
tshirt_id=c.get('tshirt')
product_id=c.get('product')
product = get_object_or_404(Product,pk=pk)
tshirt=Tshirt.objects.get(pk=pk)
c['size']= Sizevariant.objects.get(tshirt=tshirt_id, size=c['size'])
c['tshirt']=tshirt
c['product']=product
return render(request,"cart.html",{'cart':cart,'product':product,'tshirt':tshirt})

您正在使用/pk而不是购物车的主键。由于int的模式是一个数字序列,因此失败。您应该注入主键的值,例如:

<a href="/cart/{{some_product_pk}}">

,其中您将some_product_pk替换为确定要呈现的产品的主键的表达式。但最好使用{% url … %}模板标签[Django-doc]:

<a href="{% url 'cart' pk=some_product_pk%}">

最新更新