这里有什么方法可以将formset存储到会话中吗?
我的情景是这样的。我有一个填写用户数据和上传用户证书的表单,在下一页(单击下一页表格)中有一个表单可输入专业详细信息。
是否可以限制使用表单集生成的表单的最大数量?
答案 0 :(得分:1)
如果我正确地理解了你的问题 - 如何在会话中保存from的状态,然后从Django 1.4开始,它实际上提供了一种如何开箱即用的方法。
https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/
它允许您将表单拆分为多个部分,然后用户可以单独填写。一旦用户填写任何一个部分,他/她就会转到下一页,此时表单的状态将保存在会话中。填好所有页面后,就可以将所有内容保存到数据库中。
此外,在从一个页面转到另一个页面时,您可以添加下一页应该包含的逻辑。
您有一个向导的图像,在第一页上它会询问用户想要上传的内容类型。然后在转到第二页时,根据第一页的答案,可以显示适当的上传字段 - 视频,音乐或图形字段。
答案 1 :(得分:0)
我会回答FormWizard,但如果你不想使用它,你可以简单地创建两个表单。当用户提交第一个时,您将其选入会话,然后生成第二个表单。当他点击后退链接时,您取消保存已保存的数据并预填表格。
def submitFirstForm(request):
data = request.POST['data']
import cPickle
request.session['data'] = cPickle.dumps(data)
...
def backBtn(request):
import cPickle
data = cPickle.loads(request.session['page'])
form = DataForm(data)
...