模型设计
- 模型设计:
订单信息
应该包含那些字段
- 订单号: order_id
- 下单用户: user
- 下单用户收货地址: address
- 商品总数: total_count
- 商品总价: total_amount
- 运费: freight
- 支付方式(本项目两种): pay_method
- 支付宝
- 货到付款
- 订单状态(6种): status
- 待支付
- 待发货
- 待收货
- 待评价
- 已完成
- 已取消
- 模型设计:
订单商品
应该包含那些字段
- 订单号: order
- 商品信息模型: sku
- 购买的商品数量: count
- 购买的商品单价: price
- 其他可选字段
- 评价: comment
- 评分: score
- 是否匿名: is_anonymous
- 是否评价了: is_commented
提交订单
页面分析
-
展示三块数据
-
收货地址(可选,之前的接口已写好)
-
支付方式(可选: 货到付款/支付宝,用户自己选择)
-
商品列表(不可修改,后端要做的事情就是这个[包含运费字段])
-
-
接口行为: 属于完全从
db
获取数据的行为,所以,序列化器不作校验(views
只作用户认证) -
构造的数据格式(使用两个序列化器搞定)
{
"freight":"100.00", # 订单序列化器
"skus":[ # sku序列化器
{
......
},
{
......
},
]
}
redis
存储的数据格式如下
- hash: cart_user_id
{
'sku_id_1':count1,
'sku_id_2':count2,
'sku_id_3':count3,
}
- set:
(sku_id_1,sku_id_2,sku_id_3)
- 收集数据思路:
- 获取redis该用户的所有购物车数据
- 根据sku_id获取 sku_queryset数据集
- 遍历sku_queryset数据集,为每个 sku_obj新增count属性并赋值
- 手动构造最终的数据集,交给'序列化器'序列化,返回给前端
{
'freight':freight,
'skus':skus_queryset
}
标签:实战,sku,订单,美多,skus,freight,序列化,id,商城
From: https://www.cnblogs.com/qinganning/p/17359027.html