我想构建一个Django应用程序,该应用程序允许使用其API在TagChimp上搜索电影,然后将正确的电影存储在Web应用程序的数据库中。这里是如何,我认为它可以工作:如何显示要插入数据库的对象集合
这是我小的应用程序应该做的事情:
- 让用户对电影标题输入搜索词
- 显示发现电影的某些属性如标题,年份和图片,但保持周围
- 等待其他属性,为用户挑选合适的电影,他一直在寻找和使用电影模式
我编写了一个传递电影标题的视图,它使用一个辅助对象从TagChimp获取电影。它解析XML并创建一个包含所有感兴趣的元数据的字典数组,并在页面上显示搜索结果。
下一步是用户选择正确的电影,然后将其转换为模型对象并插入到数据库中。
我是django的新手,所以我不确定如何存储这个临时搜索结果,其中用户选择了正确的搜索结果。有没有办法临时创建模型对象,只保存用户选择的对象?这是全部在一个视图中实现还是为流程的每个步骤创建单独的视图(输入搜索词 - 显示结果并让用户选择正确的视图 - 将影片插入到数据库中)?
由于Bialeki指出我有这个问题处理的两种可能的方式:
- 保存的每条记录在步骤2中的形式的隐藏价值的TagChimpID和启动第二请求的只是搜索选择TagChimpID或
- 勉强保持所取得的电影在步骤2左右,所以我可以插入影片马上
第一种选择是,也许更容易实现,但需要两个请求到外部数据源,而第二选择离子可能会更快,因为只需要一个外部请求。
因此,它是正确的,我必须包括可能的电影,这是不是在选择列表中显示的所有属性,如形式隐藏字段?所以如果我在用户选择电影后得到表单的数据,我必须再次生成一个电影对象,然后保存它? – GorillaPatch
我就是这么做的。你可以使用Django会话并在那里存储模型,但是你的页面不是无状态的。另一件需要考虑的事情是,如果您最初查询电影的地方生成了一个ID(从您对问题的描述中可以看出这一点),那么您可以将其存储起来,然后在保存时查找该ID。 – Bialecki
感谢您的回答。我用图片更新了问题以说明数据流。我认为在这种情况下简单地存储TagChimp的记录ID就很容易了。但是,如果没有这样的ID,我想我将不得不介绍会议。现在,如果用户获得查询的结果太多,我必须运行分页。 – GorillaPatch