В Django, как мне установить определенную сессию запросов, используя angularjs? - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь реализовать корзину покупок и, следовательно, требую установить сеанс моих запросов с помощью angularjs.Например, если у меня есть несколько продуктов, и как только пользователь нажимает на кнопку «Добавить в корзину» определенного продукта, я хочу добавить этот продукт в объект корзины сеанса.Основная цель выбора сеансов - сделать так, чтобы эта корзина была доступна в другом запрашиваемом представлении.Есть ли какое-нибудь возможное решение?

Давайте рассмотрим, у меня есть представление с именем products_list: -

def products_list(request):
    // Somehow set session using Angularjs like below
    // request.session['cart'] = selected_products_list
    products = Product.objects.all()
    return render(request, "browse_products.html", {'products': products})

Так что я могу получить доступ к этим выбранным продуктам в другом представлении, как это: -

 def checkout(request):
     selected_products = request.session['cart']
     return render(request, "checkout.html", {'selected_products': selected_products})

1 Ответ

0 голосов
/ 13 июня 2018

Для динамического обновления сеансов я создал другое представление, предложенное @Daniel Roseman.

def update_cart_session(request):
    if request.method == 'POST':
        cart = json.loads(request.body)
        request.session['cart'] = cart["cart"]
        print request.session['cart']
        return HttpResponse('OK')
    else:
        return HttpResponse("Not a POST Method")

И для отправки товаров из корзины с помощью AngularJS я использовал метод HTTP post: -

var url = "your_url_pointing_to_above_view";
var data= {
    "cart": $scope.cart
};
$http.post(url, data).then(successCallback, errorCallback);         
function successCallback(response){
    console.log(response);
};
function errorCallback(error){
    console.log(error);
    swal("Oops!", "Check your internet connection!", "error");          
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...