Ответы пользователя по тегу Сессии
  • Как вывести значения словаря из списка обьектов сессии Питон/Джанго?

    Voskresenskyi
    @Voskresenskyi Автор вопроса
    Начинающий джанговод!
    Мой ответ таков:
    Вариант №1:
    views.py
    def add_product_to_cart(request):
    	if request.method == 'POST':
    		id = int(request.POST['product_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) #можно и так Product.objects.filter(id__in=request.session['cart'])
    	content={
    		"product_items":product_items
    	}
    	return render (request, "orderdetail.html", content)

    Вариант №2 (в принципе отличия не серьезные):
    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("/")
    
    def show_cart(request):
    	cart = request.session.get('cart')
    	product_items = Product.objects.filter(id__in=(x['product_id'] for x in cart) )#можно прописать и для price вот только фактически это не нужно...
    	content={
    		"product_items":product_items
    	}
    	return render (request, "orderdetail.html", content)


    В добавок - читайте свой код! В данном случае я в темплейте пропустил(скорее всего нечаянно удалил) скобку))
    Спасибо iegor за помощь,)
    Ответ написан
    Комментировать