Мне нужно добавить и вывести объекты из сессии таким образом, чтобы потом можно было вывести характеристика выведенных объектов!
Имеется сессия со списком, в котором есть словари -
cart(переменная сессии) [{'price': 436, 'product_id': 5}, {'price': 436, 'product_id': 6}]
добавляю их следующим способом
views.py
def add_product_to_cart(request):
if request.method == 'POST':
id = int(request.POST['product_id'])
price = int(request.POST['price'])
if 'cart' not in request.session:
request.session['cart'] = []
request.session['cart'].append(dict({'product_id': id, 'price': price}))
request.session.modified = True
return redirect("/")
и естественно мне нужно вывести значения ключей 'product_id' и 'price' в тепмлейте. Пробую делать это так:
def show_cart(request):
cart = request.session.get('cart')
product_items = Product.objects.filter(id__in=cart) #пробовал и так Product.objects.filter(id__in=request.session['cart'])
content={
"product_items":product_items
}
return render (request, "orderdetail.html", content)
в результате получаю ошибку -
int() argument must be a string, a bytes-like object or a number, not 'dict'
Может у кого есть идеи как это реализовать?
изначально делал так:
def add_product_to_cart(request, id):
if 'cart' not in request.session:
request.session['cart'] = []
request.session['cart'].append(int(id))
request.session.modified = True
return redirect("/")
def show_cart(request):
cart = request.session.get('cart')
product_items = Product.objects.filter(id__in=cart)
content={
"product_items":product_items
}
return render (request, "orderdetail.html", content)
получал только id объекта, но в результате получал только наименование товара!! других данных вывести не мог!!
ЗАРАНЕЕ БЛАГОДАРЕН!!