Вы можете использовать сеанс, который вы уже использовали для сбора ваших продуктов здесь:
sess = request.session.get("data", {"items": []})
Итак, прежде чем перенаправлять пользователя, просто установите флаг в его хранилище сеансов, чтобы он мог получить доступ к маршруту «платежей».
buyer.product.set(Product.objects.filter(active=True, slug__in=sess["items"]))
request.session['allow_payments'] = True
return redirect('shop:payment')
Затем в «платежах» отметьте флажок
def payment(request):
if not request.session.get('allow_payments'):
return redirect(...somewhere...)
return render(request,'shop/payment.html')