資料庫有一條用戶的消費訂單,工作人員對這條訂單進行修改時,不能修改訂單裡面的顧客信息,但是前端需要展示給這個訂單的顧客信息。 form裡面的select框設置固定值 利用Jquery // 1.先給id=id_order_customer的select框設置值a,這個值是你前面已經定義的變數 $(" ...
資料庫有一條用戶的消費訂單,工作人員對這條訂單進行修改時,不能修改訂單裡面的顧客信息,但是前端需要展示給這個訂單的顧客信息。
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()