form里面有的select框需要设置成固定值展示给用户看,但是又不让用户进行变更。

  • form里面有的select框需要设置成固定值展示给用户看,但是又不让用户进行变更。已关闭评论
  • 163 次浏览
  • A+
所属分类:Web前端
摘要

数据库有一条用户的消费订单,工作人员对这条订单进行修改时,不能修改订单里面的顾客信息,但是前端需要展示给这个订单的顾客信息。

数据库有一条用户的消费订单,工作人员对这条订单进行修改时,不能修改订单里面的顾客信息,但是前端需要展示给这个订单的顾客信息。

form里面的select框设置固定值

利用Jquery

// 1.先给id=id_order_customer的select框设置值a,这个值是你前面已经定义的变量 $("#id_order_customer").val(a) // 2.给id=id_order_customer的select框属性设置成不能操作 $("#id_order_customer").attr("disabled","disabled") 

这样设置以后,form里面的数据不会post传递给后端,如果后端要用这个数据,需进行处理

后端数据库更新

# 新建一个request.POST的副本,此时这个里面是没有select的数据 transport_post_data = request.POST.copy() # 拿到请求里面的参数orderid的值, orderid = int(request.GET.get('orderid')) # 查询数据库里面该条数据, row_object = models.Orders.objects.filter(id=orderid).first() # 由于在前端select框改成不可筛选,form不会把这个数据post传进来,所以这里需要给添加上,要不然修改以后这个值会变成models当时设置的默认值为的null值 # 这条订单里面的顾客设置成这条订单的顾客 transport_post_data["order_customer"] = row_object.order_customer.id # 对数据库里面的这条数据进行更新保存 form = OrdersForm(data=transport_post_data, instance=row_object) form.save()