1.订单模块
当购物车商品筛选完毕点击结算时,跳转到支付宝支付流程,其实就是接入到支付宝的支付接口,由支付宝来处理订单结算,我们直接获取支付结果。支付模块可以直接查看支付宝的开发文档。
1.1 表的关联
一个用户可以有多个订单
一个订单中可以有多个商品
一个商品可以在多个订单中
订单和商品是多对多的关系
1.2 建立模型
class Order(models.Model):
o_user=models.ForeignKey(User)
o_price=models.FloatField(default=0)
o_time=models.DateTimeField(auto_now=True)
o_status=models.IntegerField(default=ORDER_STATUS_NOT_PAY)
class Meta:
db_table='sxw_order'
class OrderGoods(models.Model):
o_order=models.ForeignKey(Order)
o_goods=models.ForeignKey(Goods)
o_goods_num=models.IntegerField(default=1)
class Meta:
db_table='sxw_ordergoods'
执行数据迁移
1.3 点击结算按键时,生成订单
在views.py文件中写视图函数
def make_order(request):
carts=Cart.objects.filter(c_user=request.user).filter(c_is_select=True)
order=Order()
order.o_user=request.user
order.o_price=get_total_price()
order.save()
for cart_obj in carts:
ordergoods=OrderGoods()
ordergoods.o_order=order
ordergoods.o_goods_num=cart_obj.c_goods_num
ordergoods.o_goods=cart_obj.c_goods
ordergoods.save()
cart_obj.delete()
data={
'status':200,
'msg':'ok',
'order_id':order.id
}
return JsonResponse(data=data)
配置路由
url(r'^makeorder/',views.make_order,name='make_order'),
cart.js
$("#make_order").click(function(){
var select_list=[];
var unselect_list=[];
$(".confirm").each(function(