我添加到 Django 会话的数据。我想计算单个数据:(数量和价格)并且我想计算我的(总量)
dict_items([('1', {'name': 'Talon Lott', 'image': '/media/images/products/1.png', 'reg_price': '958.0', 'dis_price': '844.0', 'qty': 1}),
('2', {'name': 'Lionel Owens', 'image': '/media/images/products/2.png', 'reg_price': '684.0', 'dis_price': '221.0', 'qty': '1'}),
('3', {'name': 'Brenna Chan', 'image': '/media/images/products/3.png', 'reg_price': '728.0', 'dis_price': '177.0', 'qty': 1}),
('4', {'name': 'Amos Osborne', 'image': '/media/images/products/4.png', 'reg_price': '453.0', 'dis_price': '547.0', 'qty': '1'})])
但是在 views.py 文件中,当我循环此数据时,我只得到 id:1 数据。
{'name': 'Talon Lott', 'image': '/media/images/products/1.png', 'reg_price': '958.0', 'dis_price': '844.0', 'qty': 1}
那么我怎样才能为我的会话数据创建一个循环
这是我的 views.py 文件 我在 Add_to_cart 按钮上使用了 Jquey ajax 来添加我的产品 添加到购物车
# Add To Cart
def add_to_cart(request):
card_product = {}
card_product[str(request.GET['id'])] ={
'name': request.GET['name'],
'image': request.GET['image'],
'reg_price': request.GET['reg_price'],
'dis_price': request.GET['dis_price'],
'qty': request.GET['qty']
}
# print(card_product)
# print(id, name, image, reg_price, dis_price, qty)
if 'cartdata' in request.session:
if str(request.GET['id']) in request.session['cartdata']:
card_data = request.session['cartdata']
card_data[str(request.GET['id'])]['qty'] = int(card_product[str(request.GET['id'])]['qty'])
card_data.update(card_data)
request.session['cartdata'] = card_data
else:
card_data = request.session['cartdata']
card_data.update(card_product)
request.session['cartdata']= card_data
else:
request.session['cartdata'] = card_product
return JsonResponse({
'data':request.session['cartdata'],
'totalitems':len(request.session['cartdata'])
})
# Cart Page View
class CartListView(IndexView):
template_name = 'cart/cart.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
total_amounts = 0
saving = 0
if 'cartdata' in self.request.session:
for pro_id, item in self.request.session['cartdata'].items():
total_amounts += int(item['qty']) * float(item['dis_price'])
saving += float(item['reg_price']) - float(item['dis_price'])
print(item)
context={
'total_amounts': total_amounts,
'saving': saving,
'cart_data': self.request.session['cartdata'],
'totalitems': len(self.request.session['cartdata'])
}
return context
else:
context={
'total_amounts': total_amounts,
'cart_data':0,
'totalitems': 0
}
return context