我想写一个基于什么url我的用户是为特定的购物车视图之前的if条件



我正在构建一个电子商务网站,我构建了一个特定的视图来处理在购物车中添加产品,在添加产品后,我的用户被重定向到商店。但问题是,我想知道用户是否在商店视图中,所有产品都在哪里,或者他是否在product_detail视图中,只显示一个特定用户。因此,如果用户在商店视图中,我希望在将产品添加到购物车后将他重定向到商店视图。但是如果他在product_detail视图中,我希望他被重定向到这个product_detail视图。我想找到一种方法来查看我的用户在哪个视图或url中,然后用这种方式重定向。如果可能的话,我也希望只使用Django而不使用JavaScript。

这是我添加产品到购物车的视图。

def add_to_cart(request, slug):
product = get_object_or_404(Product, slug=slug) 
order_item, created = OrderItem.objects.get_or_create(  
product=product,
user=request.user
)
order_qs = Order.objects.filter(user=request.user, complete=False) 
if order_qs.exists():   
order = order_qs[0] 
if order.products.filter(product__slug=product.slug).exists(): 
order_item.quantity += 1  
order_item.save()     
messages.info(request, 'This item quantity was updated')
else:
order.products.add(order_item)  
messages.info(request, 'This item was added to your cart') 
else:
order = Order.objects.create(user=request.user)  
order.products.add(order_item)  
messages.info(request, 'This item was added to your cart')
return redirect('store')  

而不是:

return redirect('store')

尝试添加:

return redirect(request.META.get("HTTP_REFERER", "store"))

这将重定向到引用页面,您的命名URLstore将是一个备用重定向。

值得注意的是,您可能在某些时候需要基于条件的多个重定向,在这种情况下,您没有理由不能像这样添加它们:

def add_to_cart(request, slug):
product = get_object_or_404(Product, slug=slug) 
order_item, created = OrderItem.objects.get_or_create(  
product=product,
user=request.user
)
order_qs = Order.objects.filter(user=request.user, complete=False) 
if order_qs.exists():   
order = order_qs[0] 
if order.products.filter(product__slug=product.slug).exists(): 
order_item.quantity += 1  
order_item.save()     
messages.info(request, 'This item quantity was updated')
return redirect(request.META.get("HTTP_REFERER", "store"))
else:
order.products.add(order_item)  
messages.info(request, 'This item was added to your cart') 
return redirect('some_other_page')
else:
order = Order.objects.create(user=request.user)  
order.products.add(order_item)  
messages.info(request, 'This item was added to your cart')
return redirect('store')

相关内容

  • 没有找到相关文章

最新更新