繁体   English   中英

动态 URL 路由 Django

[英]Dynamic URL Routing Django

I Created a dynamic url routing/views for each one of the product on my website, Everything is working fine until I go to Cart/checkout and it loads on of the product page currently in Cart instead of Cart.html and Checkout.html

urlpatterns = {
    path('<str:pk>/', views.dynamic_product_view, name='productdetail'),
}

视图.py:

def dynamic_product_view(request, pk=None):
    products = Product.objects.all()
    slug=None
    data = cartData(request)
    items = data['items']
    if pk is not None:
        try:
            slug = Product.objects.get(slug=pk)
        except:
            Http404()
    context = {
       'slug':slug,
       'products': products,
       'items': items
    }
    return render(request, 'product-details.html', context)

它目前在任何其他页面(如索引、商店和产品页面)上都可以正常工作,但问题出现在购物车和结帐中

代替

Http404()

raise Http404()

我在 preator 的帮助下解决了这个问题,他/她指出我应该在 url 模式文件中的动态 url 路径之前放置购物车和结帐

path('cart/', views.cart, name='cart'),
path('checkout/', views.checkout, name='checkout'),
path('<str:pk>/', views.dynamic_product_view, name='productdetail'),

它完全工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM