我正在尝试创建一个表单向导,该向导以可重复的形式开始,用于添加多个学员。
用户可以根据需要添加尽可能多的学员,每个“添加实习生”表格都是一个很长的形式,需要大量的细节。
一旦用户添加了所有受训者,在向导完成之前还有3或4个表单。
这样做的最佳方式是什么?
我想知道是否将受训者添加到会话中是最简单的想法,但这可能会破坏一些向导功能,例如能够返回等等。
由于“添加实习生”表单太长,在第一个表单向导页面上使用表单集是没有意义的,我不这么认为。
有什么想法吗?
答案 0 :(得分:0)
您可以通过这样的方式修改post
方法。
if form.is_valid():
# if the form is valid, store the cleaned data and files.
self.storage.set_step_data(self.steps.current,
self.process_step(form))
self.storage.set_step_files(self.steps.current,
self.process_step_files(form))
# check if the current step is the last step
if self.steps.current == self.steps.last:
# no more steps, render done view
return self.render_done(form, **kwargs)
# check if trainee form is current form
elif self.steps.current == "trainee_form":
mentor = User.objects.get(id=self.request.user.id)
Trainee.objects.create(
mentor=mentor,
data1=self.request.POST["trainee_form-data1"]
data2=self.request.POST["trainee_form-data2"]
data3=self.request.POST["trainee_form-data3"]
)
if self.request.POST["trainee_form-add_new"] == True:
self.render.go_to_step["trainee_form"]
else:
return self.render_next_step(form)
else:
# proceed to the next step
return self.render_next_step(form)
return self.render(form)
你必须摆弄它,但希望它能引发一个想法。