*cart.py*

class Cart(object):
def __init__(self,request):
self.session = request.session
cart = self.session.get(settings.CART_SESSION_ID)
if not cart:
# save an empty cart in the session
   cart = self.session[settings.CART_SESSION_ID] = {}
self.cart = cart

def add(self,product,quantity = 1,update_quantity = False):
'''
Add a product to the cart or update its quantity

'''
product_id = str(product.id)
print(product_id)
if product_id not in self.cart:
self.cart[product_id] = {'quantity':0,'price':str(product.price)}

if update_quantity:
self.cart[product_id]['quantity'] = quantity


else:
self.cart[product_id]['quantity']+=quantity

self.save()

def save(self):
#mark the session as "modidied" to make sure it gets saved
self.session.modified = True

def remove(self, product):
'''
  remove a product from the cart
'''
product_id = str(product.id)

if product_id in self.cart:
del self.cart[product_id]
self.save()


def __iter__(self):
'''
Iterate over the items in the cart and get the products from the database

'''
product_ids = self.cart.keys()
# get the product objects and add them to the cart
products = Product.objects.filter(id__in=product_ids)
cart = self.cart.copy()
for product in products:
cart[str(product.id)]['product'] = product

for item in cart.values():
item['price'] = Decimal(item['price'])
item['total_price'] = item['price'] * item['quantity']
yield item

def __len__(self):
"""
count all the items in the cart
"""
return sum(item['quantity'] for item in self.cart.values())

def get_total_price(self):
return sum(Decimal(item['price']) * item['quantity'] for item in
self.cart.values())

def clear(self):
#remove cart from session
del self.session[settings.CART_SESSION_ID]
self.save()


*views.py(cart)*
@require_POST
def cart_add(request,product_id):
cart = Cart(request)
product = get_object_or_404(Product,id  = product_id)
form = forms.CartAddProductForm(request.POST)
if form.is_valid():
cd  = form.cleaned_data
cart.add(product = product,quantity = cd['quantity'],update_quantity =
cd['update'])
return redirect('cart_detail')


def cart_remove(request,product_id):
cart = Cart(request)
product = get_object_or_404(Product,id = product_id)
cart.remove(product)
return redirect('cart_detail')



def cart_detail(request):
cart = Cart(request)
for item in cart:
* print(item)*
for item in cart:
item['update_quantity_form'] = forms.CartAddProductForm(
                                               initial =
{'quantity':item['quantity'],
                                              'update' : True}

                                              )

return render (request,'cart/cartdetail.html',{'cart':cart})

here len of item is 0



On Wed, May 22, 2019 at 6:58 PM Anirudh Jain <anirudhajain....@gmail.com>
wrote:

> Can you tell which function in which app you are using to show data in
> which template ?
>
> On Wed, 22 May 2019, 18:56 Soumen Khatua, <soumenkhatua...@gmail.com>
> wrote:
>
>> Hi Folks,
>> Guys I'm not getting my data into html after rendered that still I'm not
>> getting my data,i'm sharing my github link:
>> https://github.com/Herosoumen/clothproject.Please go through this
>> link.Please guys help me it's urgent.
>>
>>
>> Thank You
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to django-users+unsubscr...@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/CAPUw6WZ-ESxGfTZwiSBUf7ZSiDF3g0jzSNqUX3N4NowKA3%3DGTg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/django-users/CAPUw6WZ-ESxGfTZwiSBUf7ZSiDF3g0jzSNqUX3N4NowKA3%3DGTg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAC3mK7dv0yZwX6-RjfRwkpTAF0j5%2Bxq-L1O8NcCFLj1pY-uQjQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAC3mK7dv0yZwX6-RjfRwkpTAF0j5%2Bxq-L1O8NcCFLj1pY-uQjQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPUw6Wa%3Do0tUVFj4e2wj9g%2BnZk0w1BFOqWdeqg%3DxZZx6WSDD%3DA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to