我正在尝试实现购物车,因此需要使用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})
答案 0 :(得分:0)
为了动态更新会话,我按照@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");
};