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

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

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()
posted @ 2022-10-28 12:58  周周十六  阅读(136)  评论(0)    收藏  举报