2011-06-27 37 views
0

我们有一个CSV文件,我们将其导入Django应用程序,然后创建适当的模型和关系。Django - 在写入数据库之前存储临时/预览模型的位置?

在第一页,我们有一个用户选择文件的文件上传表单。

然后,我们解析文件,并返回他们展示什么将要创建的第二页,任何验证错误等

然后,用户可以决定是否继续或取消(或者可能以纠正任何地区的导通屏幕)。

在临时临时模型实际上碰到数据库本身之前,存储临时临时模型的最佳方式是什么?

CSV文件将相当大,可能大约200 Kb,并创建几百个模型。

我应该将它存储在数据库的某个地方,并将这些模型标记为“临时”吗?这似乎有点沉重,只是为了确认,我不确定是否适合使用数据库。或者有什么方法可以将它存储在Django会话中?或者有任何其他方式来做到这一点?

我在之前提到过django用户,他们建议使用单独的数据库,或将其存储在MongoDB中。我不确定如何以这种方式将Django模型持久化到MongoDB。

他们还提到我可能需要使用类似ZeroMQ或django-celery的东西来异步处理导入过程,以防万一网络服务器超时。

无论如何,我认为我也会画SO社区,因为这里也有很多明亮的Django人潜藏在这里=)。

干杯, 维克多

+0

听起来像django用户的用户现场的人。 –

回答

1

如果这个CSV导入过程将是共同的和永久的(即由许多用户并不局限于一段短暂的时期),我宁愿纳入逻辑到模型:我会修改这些模型,使其具有一个标志,指示实例处于活动状态或挂起状态(您也可以添加删除)。这可以由多位经理来补充。可以修改默认管理器以仅过滤活动对象,而第二个管理器可以仅提取挂起的对象。可以编写一份工作来照顾那些长期待决的对象。否则(如果这是暂时的情况),您可以选择任何您熟悉的媒体来坚持挂起的对象。

相关问题