Django 我想创建一个函数,它可以是来自网站任何页面的 运行 并在同一页面上执行它的过程和 return

Django i want create a function which can be run from any page from the website and do its process and return on the same page

Django 我想创建一个函数,可以从网站的任何页面 运行 执行它的过程,并且 return 在同一页面上

我想要的是创建一个添加到购物车的按钮我已经编写了函数但是时间来自return我使用重定向到购物车页面的函数但是我希望有很多产品页面的类型,我希望他们必须重定向到他们来自的同一页面并使用相同的功能来做到这一点任何想法

@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)

注意: 我强烈建议您使用 named ur 就像在 urls.py 文件中定义的 'cart_page' (path('cart/cart_page',views.cart_page,name='cart_page')) 而不是像 '/cart/cart_page'

这样的 硬编码 url