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'