i want to fetch a session value directly in myy template i have fom by which i request session and after that i am viewing that session in another html
my views.py where session got created
class Product_detail(View):
def get(self, request, item_id,):
item = Item.objects.filter(id=item_id)
category_list = Categories.objects.all()
items = Item.objects.order_by('-update_at')
return render (request, 'product_detail.html',{"items" : item, 'category_list': category_list, 'item': items })
def post(self, request, item_id):
item = request.POST.get('item')
size = request.POST.get('Size')
cart = request.session.get('cart')
if cart:
cart[item] = size
else:
cart = {}
cart[item] = size
request.session['cart'] = cart
print(request.session['cart'])
return redirect('products:detail', item_id=item_id)
my views.py in which i want ot render session
class Cart(View):
def get (self, request):
cart = request.session.get('cart', None)
if not cart:
cart = {} # or however you define your empty cart
request.session['cart'] = cart
ids = (list(cart.keys()))
ids = (list(request.session.get('cart').keys()))
item = Item.get_items_by_id(ids)
print(item)
return render(request, 'cart.html', {'items': item })
my html code
<tbody style="margin-bottom: 20px;">
{% for item in items %}
<tr>
<th scope="row">{{forloop.counter}}</th>
<td> <img src="{{item.first.url}}" alt="" height="100px"></td>
<td>{{item.name}}</td>
{% for key, value in request.session.cart.items %}
{% if value == value %}
<td>{{ value }}</td>
{% endif %}
{% endfor %}
<td>{{item.price|currency}}</td>
<td> <a href="#">Remove</a> </td>
</tr>
{% endfor %}
</tbody>
so my session list has two values in it one is id and other is its size so want to show user it selected size right now it show both the id and size but i want to render only user selected size
any idea how to achieve that
filter
@register.filter
def item_size(cart , item):
return cart[item]