如何使用更新视图中字段的当前值来更新另一个字段?在
我有个模范员工。它有一个字段day_absent和amount_existed,显示基于缺勤天数的总扣除金额。在
在更新视图中,可以设置缺席的日期。 当我可以回到DetailView时,假设您缺席的日期是1。但扣除额还是0。我知道这是因为在save()之前,day_leavent仍然是0,并改为1。所以问题是在day_不存在的情况下,我如何计算它被保存之前输入的值?在
class PayrollTransactionUpdate(LoginRequiredMixin,UpdateView):
model = t_pay
template_name = 'payroll/transaction/update.html'
fields = ['day_absent']
def post(self,request,pk):
emp = t_pay.objects.get(pk=pk)
emp.amt_absent = emp.day_absent * emp.amt_rate
emp.save()
return super().post(request)
UpdateView
将对象保存在form_valid()
方法中。使用基于Django类的视图时,请看this invaluable site。在所以您应该重写
form_valid()
方法,而不是post()
方法:请注意,不建议将一个字段保存到
Employee
,因为这可能导致数据不一致/损坏。既然amt_absent
只是另外两个字段的乘法,为什么需要保存它?在或者,看看你实际在做什么,这似乎不是视图的责任。如果每次保存
^{pr2}$Employee
时都会发生这种情况,则可以在模型本身上执行此操作:在这种情况下,不需要重写
UpdateView
上的任何内容。在相关问题 更多 >
编程相关推荐