我正在使用与一个模型匹配的 Formwizard 开发一个向导。同样由于我的模型和其他模型之间的关系,我使用 inlineformset_factory 使模板中存在字段。
我为模型属性创建了 2 个具有相同模型的表单。我刚刚更改了 fields 属性以区分我在向导中使用的两种表单。
在我的向导中保存表单信息的那一刻,我正在这样做:
def done(self, request, form_list):
instance = Sale()
for form in form_list:
for field, value in form.cleaned_data.iteritems():
setattr(instance, field, value)
instance.save()
这很好用,但不能保存我的内联表单集
所以我在 done 方法中添加了这个:
picture_formset = ProductPictureFormset(request.POST, instance=instance)
if picture_formset.is_valid():
picture_formset.save()
但是当我这样做时,我在 Django 中有这个错误:
Exception Type: ValidationError
我注意到我的内联表单集中包含的数据没有在步骤之间传递。这就是我现在在向导中添加内联表单集的方式:
def parse_params(self, request, *args, **kwargs):
if self.step == 0:
self.extra_context.update({
'picture_formset': ProductPictureFormset(),
'brand_attribute_formset': BrandAttributeFormset()
})
但似乎我必须找到一种方法,将这些表单中检索到的数据传递到第二步。
任何想法如何做到这一点?
谢谢!