上的Django模型表单集忽略表单实例是否有效()

上的Django模型表单集忽略表单实例是否有效(),django,django-forms,Django,Django Forms,我有一个由表单组成的表单集,其中我排除了一个我希望以编程方式填充的必填字段,而不是要求用户填充它 我的期望是我可以将它从我的请求.POST字典中排除,并用下面的行添加它,是有效的()方法将同时使用请求.POST数据和添加到传递到表单的实例中的初始数据来验证和保存它 form_kwargs={“实例”:MyModel(sale=5)} get\u formset()方法返回表单集的实例 # My formset factory method def get_formset(self, **kwar

我有一个由表单组成的表单集,其中我排除了一个我希望以编程方式填充的必填字段,而不是要求用户填充它

我的期望是我可以将它从我的
请求.POST
字典中排除,并用下面的行添加它,
是有效的()
方法将同时使用
请求.POST
数据和添加到传递到表单的实例中的初始数据来验证和保存它

form_kwargs={“实例”:MyModel(sale=5)}

get\u formset()
方法返回表单集的实例

# My formset factory method
def get_formset(self, **kwargs):
    MyFormSet = forms.modelformset_factory(MyModel, form=MyForm)
    ...
    return MyFormSet(**kwargs)

不,Django永远不会使用初始数据来代替丢失的发布数据——否则您怎么能使用表单将字段设置为空?相反,您应该从表单中排除该字段,在这种情况下,现有实例值将被保留


要么在MyForm的Meta类中显式执行此操作,要么将
exclude
参数传递给
modelformset\u factory

否,Django将永远不会使用初始数据来代替丢失的发布数据-否则,您如何使用表单将字段设置为空?相反,您应该从表单中排除该字段,在这种情况下,现有实例值将被保留

可以在MyForm的Meta类中显式执行此操作,或者将
exclude
参数传递给
modelformset\u factory

# My formset factory method
def get_formset(self, **kwargs):
    MyFormSet = forms.modelformset_factory(MyModel, form=MyForm)
    ...
    return MyFormSet(**kwargs)