【发布时间】:2016-04-30 16:37:51
【问题描述】:
我已根据数量qty 字段使用以下代码成功更改我的对象中的特定字段net。
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)
但是,我也在尝试更改另一个模型中的数据。准确地说,我想要一个查询的所有net 值的总和,并更新另一个表中的subtotal 字段。
请注意def form_valid 下注释掉的行。我对这些行可以正常工作并不感到困惑,但我需要在保存当前模型后执行它们,因为它们取决于当前模型的值。
除了在保存当前模型中的 net 字段之前计算 ANOTHER 模型中的 subtotal 字段外,我没有发现任何错误。因此,总数是错误的答案。
我做错了什么?
【问题讨论】:
-
抱歉,我有点不清楚:为什么不先保存另一个模型再保存这个模型?
-
@Wtower 因为另一个模型的数据是这个模型的数据的输出。所以如果先保存,另一个模型会包含错误的数据。