更新数量和更新购物车Django

时间:2020-10-15 11:50:18

标签: python-3.x django django-views

添加购物车Vuew

def add_to_cart_view(request,pk):
products=models.Product.objects.all()

#for cart counter, fetching products ids added by customer from cookies
if 'product_ids' in request.COOKIES:
    product_ids = request.COOKIES['product_ids']
    counter=product_ids.split('|')
    product_count_in_cart=len(set(counter))
else:
    product_count_in_cart=1

response = render(request, 'ecom/index.html',{'products':products,'product_count_in_cart':product_count_in_cart})

#adding product id to cookies
if 'product_ids' in request.COOKIES:
    product_ids = request.COOKIES['product_ids']
    if product_ids=="":
        product_ids=str(pk)
    else:
        product_ids=product_ids+"|"+str(pk)
    response.set_cookie('product_ids', product_ids)
else:
    response.set_cookie('product_ids', pk)

product=models.Product.objects.get(id=pk)
messages.info(request, product.name + ' added to cart successfully!')

return response

结帐前的购物车视图

def cart_view(request):
#for cart counter
if 'product_ids' in request.COOKIES:
    product_ids = request.COOKIES['product_ids']
    counter=product_ids.split('|')
    product_count_in_cart=len(set(counter))
else:
    product_count_in_cart=0

# fetching product details from db whose id is present in cookie
products=None
total=0
if 'product_ids' in request.COOKIES:
    product_ids = request.COOKIES['product_ids']
    if product_ids != "":
        product_id_in_cart=product_ids.split('|')
        products=models.Product.objects.all().filter(id__in = product_id_in_cart)

        #for total price shown in cart
        for p in products:
            total=total+p.price
return render(request,'ecom/cart.html',{'products':products,'total':total,'product_count_in_cart':product_count_in_cart})

产品型号

class Product(models.Model):
name=models.CharField(max_length=40)
product_image= models.ImageField(upload_to='product_image/',null=True,blank=True)
price = models.PositiveIntegerField()
description=models.CharField(max_length=40)
def __str__(self):
    return self.name

我希望购物车页面中会有一个字段,其中包含“整数输入”并更新总价

当前购物车查看图片

enter image description here

我想要

enter image description here

我是新来的,正在尝试和学习,所以请帮助我解决这个问题

我需要任何新的模型或视图吗?

谢谢

0 个答案:

没有答案