我的“添加”视图中有以下表单集。用户可以动态添加表单并且添加/保存它们可以完美地工作。现在的问题是我想不出一个好方法来预填充这个表单集以进行编辑。在编辑下,用户应该能够在表单集中添加和删除表单。
看法
ClassificationFormset = formset_factory(ClassificationForm)
classification_formset = ClassificationFormset(prefix='habitat_fs')
自定义表格
class ClassificationForm(forms.Form):
classification = ClassificationField(
label=_('Habitat Classification'),
required=False,
queryset=Classification.objects.all(),
)
community = CommunityField(
label=_('Community'),
required=False,
queryset=Community.objects.none(),
)
def save(self, habitat_id, *args, **kwargs):
data = self.cleaned_data
if data:
habitat_community = Habitat_Community()
habitat_community.habitat = habitat_id
habitat_community.community = data['community']
habitat_community.save()
到目前为止,我已经尝试覆盖init并在那里填充字段......
def __init__(self, *args, **kwargs):
habitat = kwargs.pop('habitat', None)
super(ClassificationForm, self).__init__(*args, **kwargs)
# Populate fields here based on habitat
...但是 formset_factory 不允许我将任何参数传递给我的表单。
ClassificationFormset = formset_factory(ClassificationForm(habitat=habitat_id))