我已根據數量qty
字段使用以下代碼成功更改了我的對象中的特定字段net
。如何在django UpdateView的form_valid操作後保存其他數據?
class OrderDetailsProductEdit(UpdateView):
model = OrdersPlaced
fields = ['qty']
template_name = 'backend/order-details-product-edit.html'
success_url = '../../../'
def form_valid(self, form):
form.instance.net = form.instance.qty * form.instance.price
# order = Order.objects.get(pk=self.kwargs['order_id'])
# subtotal = OrdersPlaced.objects.filter(order=order).aggregate(Sum('net'))['net__sum']
# order.subtotal = subtotal
# order.save()
return super(OrderDetailsProductEdit, self).form_valid(form)
但是,我也試圖改變ANOTHER模型中的數據。準確地說,我想要查詢的所有net
值的總和,並更新另一個表中的subtotal
字段。
請注意def form_valid
下的註釋行。我對這些線路沒有任何困惑,但我需要它們在保存當前模型後執行,因爲這些模型取決於當前模型的值。
我不覺得比之前的電流模式net
字段保存在另一種模式的subtotal
場計算之外的任何錯誤。因此,總數是錯誤的答案。
我在做什麼錯?
對不起,有點不清楚對我說:爲什麼在保存這個模型之前不要保存另一個模型嗎? – Wtower
@Wower,因爲其他模型的數據是該模型數據的輸出。因此,如果首先保存其他模型將包含錯誤的數據。 – MiniGunnR