在我的Django应用程序中,我有一个page.html
,其中包含来自多个模型的表单,如下所示:
# models.py
class OneModel(models.Model):
foo = models.CharField(...)
bar = models.CharField(...)
# forms.py
class OneForm(forms.ModelForm):
class Meta:
model = OneModel
在保存时,除了POST数据外,我还为所有表单添加了一个前缀,例如:
form1 = OneForm(prefix=OneForm.Meta.model._meta.module_name)
然后,我发送要保存的POST
请求,并将下一个数据发送到__init__
表单:
# views.py
form_data = {'foo': 'fo-fo-fo', # from request.POST
'bar': 'bar-bar-bar'} # -//-//-
form1 = OneForm(form_data) # without prefix
之后,当模板放在一起时,我从表单输入我的数据(fo-fo-fo
,bar-bar-bar
),但输入名称中没有前缀,这不是我想要的
但如果我在__init__
部分添加前缀而不是我的数据,则会返回表单:
# views.py
form1 = OpenForm(prefix=OneForm.Meta.model._meta.module_name, form_data)
如何使用 我需要的数据和我添加的前缀来获取表单的结果?
答案 0 :(得分:1)
您无需从form_data
创建request.POST
。您可以将表单实例创建为form1 = OneForm(request.POST, prefix=OneForm.Meta.model._meta.module_name)
。