我试图理解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]))