对于调查问卷,我想向用户呈现一系列表格。我想保持视图的通用性,以便它可以在序列中显示任何表单实例。
目前,我正在存储表单对象(不是实例)的列表,并且我在需要呈现时实例化每个表单。 (例如formobject = formslist[3]; form = formobject();
)。
有更多的pythonic方式吗?我已经考虑在每个表单的定义中使用getnext
函数,但我仍然需要一个位置来列出我想要生成的表单序列。
下一步将介绍一些跳过逻辑,因此表格序列的硬连线并不理想。
也许这会有所帮助。这就是我在视图中使用getnext
函数的内容。它从第一种形式到第二种形式起作用,但后来不起第三种形式:
def showform(request):
if 'formobj' not in locals():
formobj = StartForm
if request.method == 'POST': # If the form has been submitted...
form = formobj(request.POST)
if form.is_valid():
try:
form.save()
except:
pass
cd = form.cleaned_data
formobj = form.get_next()
form = formobj()
if formobj == 'done':
render_to_response('doneform.html', context_instance=RequestContext(request))
else:
form = formobj()
else:
form = formobj()
return render_to_response('template.html', {'form': form, 'requestpath': request.get_full_path()}, context_instance=RequestContext(request))
答案 0 :(得分:3)
您是否在表单向导步骤中查看了这个以保存数据
Using FormWizard and saving the forms data in between before the completion of the whole process?
该帖子中还提到了一款名为django-merlin的应用程序,可以满足您的需求。我个人并没有亲自使用它。
修改
这是另一篇可能对您有所帮助的帖子 Django - form wizard step by step