我的内联字段中的一个需要计算。我覆盖了BaseInLineFormSet清理方法,并且可以在那里进行计算,并且显然在那里设置了字段的值,但是它不会保存到数据库中,因此也不会显示。该字段默认为零,顺便说一句,以防万一。这里有一个硬编码的版本:Django admin内联计算字段不会保存
class EmployeeAssignmentInLineFormSet(BaseInlineFormSet):
def clean(self):
super(EmployeeAssignmentInLineFormSet, self).clean()
self.cleaned_data[0]['cost'] = 5000
我也试过在的ModelAdmin覆盖save_formset - 同样的结果:
def save_formset(self, request, form, formset, change):
formset.cleaned_data[0]['cost'] = 5000
formset.save()
当我设置的值只是干净,我可以看到它已经被设置时,它得到save_formset,但它仍然最终在数据库中为零。我在错误的地方或什么?
显然是同样的事情。一些代码: –
嗯,我不知道我以前的评论发生了什么,所以只是不理会它,我会再试一次。如果我在我的线上放置断点(self.cleaned_data [0] ['cost'] = 5000),我会看到该值和self.forms [0] .cleaned_data ['cost']处的值均为零。然后我再次检查这些值,两者都是5000.所以他们都指向相同的东西,然后自然我仍然在DB中得到0。 –