mysql结算订单表到用户_Luffy之结算订单页面(订单模型表的创建,订单的生成,以及订单详情展示等)...

订单页面

在前面我们已经构建了,购物车的页面,接下来到了结算页面

1.首先,在购物车页面点击去结算按钮时,我们需要做如下动作

.前端发送生成订单的请求,点击标签内触发事件 create_order

template:去结算script,methods中:

create_order(){//生成订单

this.$axios.post("http://127.0.0.1:8000/orders/",{},{

headers: {//附带已经登录用户的jwt token 提供给后端,一定不能疏忽这个空格'Authorization': 'JWT' +this.token

},

responseType:"json",

}).then(response=>{//在session中保存订单ID,便于在结算页面发送请求时带上order_id,查询订单详情

sessionStorage.order_id=response.data.order_id;//跳转到结算页面

this.$router.push("/order")

}).catch(error=>{//生成订单失败

alert("生成订单失败")

})

后端需要对该请求作出处理,将订单保存到mysql中,并返回对应的订单的ID值(不是订单号),但是在做订单保存之前,我们必须先创建订单的数据模型,其中模型如下所示

order.models:

订单的模型:

#Create your models here.

from django.db importmodels#Create your models here.

from luffy.apps.user.models importUserfrom luffy.apps.courses.models importCourseclassOrder(models.Model):"""订单记录"""status_choices=(

(0,'未支付'),

(1, '已支付'),

(2, '已取消'),

)

total_price= models.DecimalField(max_digits=10, decimal_places=2, verbose_name="订单总价", default=0)

order_number= models.CharField(max_length=32,verbose_name="订单号")

order_status= models.SmallIntegerField(choices=status_choices, default=0, verbose_name="订单状态")

order_desc= models.CharField(max_length=120,verbose_name="订单描述")

created_time= models.DateTimeField(verbose_name="订单生成时间", auto_now_add=True)

pay_time= models.DateTimeField(verbose_name="订单支付时间", auto_now_add=True)

user= models.ForeignKey(User, related_name='user_orders', on_delete=models.DO_NOTHING,verbose_name="用户ID")classMeta:

db_table="ly_order"verbose_name= "订单记录"verbose_name_plural= "订单记录"

classOrderDetail(models.Model):"""订单详情"""order= models.ForeignKey("Order", related_name='order_course', on_delete=models.CASCADE, verbose_name="订单ID")

course= models.ForeignKey(Course, related_name='course_order', on_delete=models.CASCADE, verbose_name="课程ID")

user= models.ForeignKey(User, null=True, related_name="course", on_delete=models.DO_NOTHING, verbose_name="用户ID")

unit_price= models.DecimalField(max_digits=8, decimal_places=2, null=True, verbose_name="课程价格")classMeta:

db_table="ly_order_detail"verbose_name= "订单详情"verbose_name_plural= "订单详情"

而后端的处理代码如下所示

classOrderAPIView(APIView):defpost(self,request):#获取用户ID

try:

user_id=request.user.idexcept:retu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值