我正在使用模型formset为对象列表生成表单表。
形式:
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。
我尝试在表单中添加一个字段,然后传递" initial"和" queryset"对于formset,但它看起来只需要一个。
你们会怎么做?
由于
答案 0 :(得分:1)
对于模型表单集,初始值仅适用于额外的表单,即未绑定到现有对象实例的表单。 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