使用ModelFormSet编辑相关对象
问题描述:
我正在使用模型formset为对象列表生成表格。使用ModelFormSet编辑相关对象
形式:
class UserTypeModelForm(ModelForm):
account_type = ChoiceField(label='User type',
choices=ACCOUNT_OPTIONS, required=False)
class Meta:
model = get_user_model()
fields = ('account_type',)
UserTypeModelFormSet = modelformset_factory(get_user_model(),
form=UserTypeModelForm,
extra=0)
查看:
formset = UserTypeModelFormSet(queryset=users, prefix='formset')
现在我的客户希望能够修改相关领域:user.employee_profile.visible。
我尝试添加一个字段到窗体,然后将“初始”和“查询集”传递给formset,但它看起来只需要一个。
你们会怎么做?
感谢
答
与模型表单集,初始值仅适用于额外的形式,那些没有被绑定到现有对象实例。 Django docs
的queryset
提供了用于绑定字段的选定/输入的数值,该initial
为额外的字段(在你的情况下为0)。
但是,您可以覆盖例如您在创建employee
字段时的看法:
for form in forms:
# Don't override a selected value.
if not form.fields['employee'].initial:
form.fields['employee'].initial = my_init