我创建了一个动态的网址路由/视图为我的网站上的每一个产品,一切都工作正常,直到我去购物车/结帐,它加载的产品页面目前在购物车而不是Cart.html和Checkout.html
urlpatterns = {
path('<str:pk>/', views.dynamic_product_view, name='productdetail'),
}
views.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)
它目前工作正常的任何其他网页一样的索引,商店和产品页面,但问题出现在购物车和结帐
2条答案
按热度按时间w46czmvw1#
替换
到
qqrboqgw2#
只是添加一个答案而不是评论:
如果你使用的是没有前缀的动态URL路由,它会匹配所有可以出现在网站上的URL。Django会按照定义的顺序评估模式,所以动态模式应该在所有特定模式之后,然后当checkout和cart不匹配时,动态模式会处理它。
在本例中,将动态路径放在购物车路径和结帐路径之后。