【DailyFresh】课程记录5---订单模块(一)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

运费:在实际开发的时候,应该属于一个子系统(可以新建一个子系统,比如可以建一张表,买的商品金额介于xx-xx

之间,获取运费)这里未开发,暂时为硬编码

transit_price = 10

实付款为总金额+运费

total_pay = total_price + transit_price

获取用户的收件地址,将用户的收件地址全部查询出来,用户进行选择

addrs = Address.objects.filter(user=user)

组织上下文

context = {

‘addrs’: addrs,

‘total_count’: total_count,

‘total_price’: total_price,

‘transit_price’: transit_price,

‘total_pay’: total_pay,

‘skus’: skus,

}

return render(request, ‘df_order/place_order.html’, context)

前端页面

order/place_order.html

1.地址部分要遍历

2.商品ul部分遍历【数量和小计都有动态添加的属性sku.count和sku.amount,注意,其中序号使用{ { forloop.counter }}】

配置地址

path(‘place’, OrderPlaceView.as_view(), name=‘place’) # 提交订单页面显示

展示的时候,地址只能选中一个,需要在页面中地址部分加name=“addr_id” value=“{ { addr.id }}” {% if addr.is_default %}checked{% endif %}<----表示选中

P87 创建订单前端js

用户提交订单页面的显示,要查询出:

用户地址信息的显示;

用户要购买的商品的信息以及商品数量和小计;

商品的总金额,运费和实付款

当用户提交订单时,需要在后台生成对应的订单,关于订单如何生成,先回顾订单中的两张表:

订单信息表和订单商品表

订单信息表中的trade_no订单编号默认为空

trade_no = models.CharField(max_length=128, default=“”, verbose_name=‘支付编号’)

订单创建:

用户在页面上点击提交订单,在后台要生成订单,给后台需要传递的参数:

收货地址、

支付方式、

商品id,

关于金额不需要传递,后台不会使用传来的参数,自己在后台做计算

收货地址可以获取到,因为选择的时候在后台设置place_order.html的时候,每个地址都有value值,只需要将选中的value值拿出来

支付方式也都有对应的值 value=“1” value=“2”…与models表中定义的一一对应

商品id,页面中没有,用户要购买的商品信息都是后端传过来的,在显示订单提交页面时用户要购买的商品都在sku_ids

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值