我有一个像这样的django模型:
class Something(models.Model):
attr1 = models.IntegerField()
attr2 = models.IntegerField()
attr3 = models.IntegerField()
我想创建一个表单来创建 Something objects ,但我想使用WizardForm来完成它,所以我将'big form'分成两种形式,如:
class Form1(forms.ModelForm):
class Meta:
model = Something
exclude = ('atrr3',)
class Form2(forms.ModelForm):
class Meta:
model = Something
fields = ('atrr3',)
所以两者一起制作完整的模型形式。 所以这里是我的问题:有没有办法将它们保存在一起并从中创建一个 Something对象?
答案 0 :(得分:2)
经过大量的谷歌搜索后,我找到了问题的答案。我会把它发布给有同样问题的人:
如果您有多个表单,并且需要将它们组合在一起以创建模型的对象,则可以执行以下操作:
data = {}
# being list_form a iterable list of forms
for form in list_form:
data.update(form.cleaned_data)
Something.objects.create(**data)
我认为这是一个简单而且非常好的解决方案。
答案 1 :(得分:1)
你真的试过Django's Form Wizard吗?
正如文档所述:
用户提交完所有表格后,所有数据都已提交 验证后,向导处理数据 - 将其保存到数据库, 发送电子邮件,或者应用程序需要做的任何事情。
尽管使用将包含在1.4中的重写向导可能是有意义的:
http://django-formwizard.readthedocs.org/en/latest/index.html
usage instructions非常简单。