Django Я хочу создать функцию, которая может быть запущена с любой страницы сайта и сделать свой процесс и вернуться на той же странице

Django Я хочу создать функцию, которая может быть запущена с любой страницы сайта и сделать свой процесс и вернуться на той же странице

Что я хочу, это создать кнопку для добавления в корзину я написал функцию, но время приходит от возвращения из функции я использую перенаправление на страницу корзины, но я хочу, что есть много типов страниц продуктов и я хочу, чтобы они должны перенаправлять на ту же страницу, откуда они приходят и использовать ту же функцию, чтобы сделать это любая идея

@login_required(login_url='login_signup')
def add_cart(request,id):
    prod = Product.objects.get(id = id)
    try:
        cart = Cart.objects.get(cart_id = _cart_id(request))

    except Cart.DoesNotExist:
        cart = Cart.objects.create(
            cart_id = _cart_id(request)

        )
       
    cart.save()

    try:
        cart_item = CartItem.objects.get(product = prod,cart = cart)
        cart_item.quantity = cart_item.quantity + 1
        cart_item.save()
        # print("I was tries")
        customer = request.user
        cust = Customer.objects.get(user = customer)
        # print(f"The customer is {cust}")
    except CartItem.DoesNotExist:
        customer = request.user
        cust = Customer.objects.get(user = customer)
        # print("Cart except is also being hit")
        cart_item = CartItem.objects.create(
            product = prod,
            quantity = 1,
            cart = cart,
            user = cust, 
            
            
        )
        cart_item.save()

    return redirect('/cart/cart_page') 

Вот функция, которую я использую для добавления в корзину, я хочу, чтобы она перенаправляла на ту же страницу, с которой она приходит, не всегда на страницу корзины, потому что я буду запускать ту же функцию из многих мест

Используйте request.META.get('HTTP_REFERER') для предыдущего url, с которого пришел пользователь.

@login_required(login_url='login_signup')
def add_cart(request,id):
    # Lot of code
    #Redirect to previous url if exist else '/cart/cart_page'
    previous_url = request.META.get('HTTP_REFERER', '/cart/cart_page')
    return HttpResponseRedirect(previous_url)

Примечание : я настоятельно рекомендую вам использовать именованные url такие как 'cart_page' определенные в urls.py файле (path('cart/cart_page',views.cart_page,name='cart_page')) вместо жестко закодированных url таких как '/cart/cart_page'

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