Я хочу написать условие if, основанное на том, какой url был у моего пользователя до того, как он был принят для определенного вида корзины.

Я создаю сайт электронной коммерции и создал специальное представление для работы с добавлением товаров в корзину, и после добавления товара, мой пользователь перенаправляется в магазин. Но вот в чем дело, я хочу увидеть, был ли мой пользователь в представлении магазина, где находятся все продукты, или он был в представлении 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"))

Это приведет к перенаправлению на ссылающуюся страницу, а ваш именованный URL store будет резервным перенаправлением.

Вернуться на верх