我的內聯字段中的一個需要計算。我覆蓋了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。 –