我正在开发一个网站,该网站需要包含用户必须输入多个数据的功能,最终成为一个大型文档。想象一下,我正在设计一个简历生成系统,其中简历就像5页以上一样。用户登录该站点,然后必须输入他/她的简历中包含的所有信息,并在该过程结束时有一个“生成”按钮,用户可以在其中获取PDF链接。
我没有使用一个巨大的表单,而是将系统设置为三个部分,有点像这样
www.mysite.com/user-name/resume/1
<FORM> enter some info </FORM>
www.mysite.com/user-name/resume/2
<FORM> enter some more info </FORM>
www.mysite.com/user-name/resume/3
输入最终信息
最后,您将被重定向到
www.mysite.com/user-name/mypdf
其中包含指向pdf的链接(或显示pdf)
我将所有信息存储在MongoDB中,因为它非常棒,但是考虑到这个系统,我对设计有以下问题。
1)由于简历数据以3种不同的表格形式保存,我需要调用三次不同的时间保存到MongoDB(还有另一种方法吗?)。现在,我能想到关联简历的所有部分的最佳方式是在帖子之间的会话中插入UUID,并将此UUID与数据库中的每个简历一起保存。这样,当生成时,我只是查询数据库
db.resumes.find({'docid':uuid'})我可以获得所有部分,并构建简历
问题:当您有多个相关数据来自不同的表单帖子时,在会话中保存此UUID是解决此问题的最佳方法。如果需要更多澄清,我理解。
我不知道在哪里进行重定向,因为我使用的是ajax。我习惯于处理Django视图中的重定向,但我没有在这个系统中使用Django Forms或Models。我的问题是,我该如何处理以下重定向:
www.mysite.com/user-name/resume/1 - &gt; www.mysite.com/user-name/resume/2 - &gt; www.mysite.com/user-name/resume/3 - &gt; www.mysite.com/user-name/mypdf
目前,我确保所有的帖子数据都是正确的,通过ajax将它发送到服务器,如果我能够成功将这些数据保存到MongoDB,我就用这个:
$(位置).attr( 'href' 属性, “www.mysite.com/user-name/resume/1 /”);
我知道这是处理重定向的错误方法,因为它只是附加到当前URL(但它有效,所以......)。据我所知,我需要在客户端完成重定向,但我不确定最好的方法是什么。
由于
答案 0 :(得分:1)
如果您已经使用了jquery,那么我建议只有一个包含所有字段的表单,并使用插件将其拆分为多个子表单。我使用stepy。或者您可以自己实现类似的功能。
只有一个表单,您可以使用常规POST请求将数据发送到服务器并获取重定向响应。