我正在重写我们的应用程序的一大部分,要求用户创建一个附加Project
的{{1}}。
表单分为不同的步骤,前两个是正常Rewards
,下一个是Project
,最后是一个简单的预览,让用户来回轻弹创建一个完美的Rewards
。
my forms.py
Project
my urls.py
class BaseRewardFormSet(BaseModelFormSet):
def __init__(self, *args, **kwargs):
super(BaseRewardFormSet, self).__init__(*args, **kwargs)
self.queryset = Reward.objects.none()
RewardFormSet1 = modelformset_factory(Reward, extra=2, exclude=('project'), formset=BaseRewardFormSet)
class ProjectForm1(forms.ModelForm):
"""docstring for ProjectForm1"""
class Meta:
model = Project
exclude=( ... )
class ProjectForm2(forms.ModelForm):
"""docstring for ProjectForm2"""
class Meta:
model = Project
exclude = ( ... )
my views.py
instance_dict = {'2': Reward.objects.none()}
url(r'^new-project/$', login_required(ProjectWizard.as_view([ProjectForm1, ProjectForm2, RewardFormSet1, ProjectForm3], instance_dict=instance_dict))),
在渲染重定向时,它显示所有数据都已清除,这意味着表单有效,并且所有项目数据都保存到项目
我可以看到奖励数据因为没有被调用而无法保存,但到目前为止我尝试的每个解决方案都失败了。
如何在保存时将奖励实施到此解决方案中?
也许有人可以对此有所了解,非常感谢!
答案 0 :(得分:2)
这有用吗?假设Reward
有project
。
for rw in form_list[2].save(commit=False):
rw.project = project
rw.save()