python - 用django做购物车,为什么购物车中相同的物品不能合并成一个?

 媣栺葒尘_383 发布于 2022-10-30 23:44

是根据这一个教程做的
http://www.cnblogs.com/holbrook/archive/2012/03/02/2357343.html

view_cart.html

{% extends "base.html" %} {% block title %} 我的购物车{% endblock %} {% block pagename %} 我的购物车 {% endblock %} {% block content %}

{% for item in cart.items %} {% endfor %}
数量 名称 单价 小计
{{item.quantity}} {{item.product.title}} {{item.unit_price}} {% widthratio item.quantity 1 item.unit_price %}
总计: {{cart.total_price}} 数量: {% for item in cart.items %}{{item.quantity}}{% endfor %}

继续购物

清空购物车

结算

{% endblock %}

views.py :

def view_cart(request):
    cart = request.session.get("cart",None)
    t = get_template('depotapp/view_cart.html')
    if not cart:
        cart = Cart()
        request.session["cart"] = cart
    c = RequestContext(request,locals())
    return HttpResponse(t.render(c))

models.py

class Cart(object):
    def __init__(self, *args, **kwargs):
        self.items = []
        self.total_price = 0
    def add_product(self,product):
        self.total_price += product.price
        for item in self.items:
            if item.product.id == product.id:
                item.quantity += 1
        return self.items.append(LineItem(product=product,unit_price=product.price,quantity=1))    

2 个回答
  • 请问一下,你现在还有这个教程的源代码吗?我现在也在根据这个教材做,可是也遇到了好多问题

    2022-10-31 22:04 回答
  • 你的 add_product 错了,return 的位置不对

            def add_product(self,product):
                self.total_price += product.price
                for item in self.items:
                    if item.product.id == product.id:
                        item.quantity += 1
                        return
                self.items.append(LineItem(product=product,unit_price=product.price,quantity=1)) 
    2022-10-31 22:04 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有