我試圖理解Django表單集的內部是如何工作的。Django和表單集
一個formset類後,通過formset_factory函數創建,繼承/從BaseFormSet,新創建的類的一個對象被初始化,例如獲得屬性:
ArticleFormSet = formset_factory(ArticleFormA, extra=2)
formset = ArticleFormSet()
如果我檢查與dir(formset)
形式和形成屬性是可用的,但如果我嘗試打印forms
沒有打印任何內容,我想這是關係到裝飾@cached_property
(但當叫什麼名字?)
在該formset對象的初始化沒有涉及到forms
屬性操作。
所以,我想調用時{{formset}}或{{formset.as_p}}等被調用。
的方法有:
forms = ' '.join(form.as_p() for form in self)
爲什麼自我,我不明白,因爲基於目錄()形式就是一個類,自我是該formset對象。背後的邏輯是什麼?
(PS我明白了什麼是做打算每一種形式),但形式不形成,除了事實的形式現在被填充
而在此之後,使用management_form之前創建的領域。
return mark_safe('\n'.join([six.text_type(self.management_form), forms]))