我们有一个要导入到Django应用程序中的CSV文件,然后创建适当的模型和关系。
在第一页,我们有一个文件上传表单,用户可以在其中选择一个文件。
然后,我们解析文件,并返回第二个页面,显示将创建的内容、任何验证错误等。
然后,用户可以决定是否继续(或可能更正屏幕上的任何区域)。
在临时模型真正到达数据库之前,存储临时临时模型的最佳方式是什么?
CSV文件将相当大,可能在200KB左右,并创建数百个模型。
我是否应该将其存储在数据库中的某个位置,并将这些模型标记为“临时”?这看起来有点沉重,只是为了确认,而且我不确定这是否是数据库的适当使用。或者,有没有什么方法可以将它存储在Django会话中?或任何其他方法来做吗?
我之前在django-users上提到过这一点,他们建议使用单独的DB,或者将其存储在MongoDB中。不过,我不太确定以这种方式将Django模型持久化到MongoDB的最好方法。
他们还提到,我可能需要使用ZeroMQ或django-celery来异步处理导入过程,以防web服务器在导入过程中超时。
不管怎么说,我想我也会在SO社区中寻找,因为有很多聪明的Django人也潜伏在这里=)。
干杯,维克多
发布于 2011-06-27 15:57:43
如果这个csv导入过程将是通用的和永久的(即许多用户使用,并且在短时间内不受限制),我更喜欢将逻辑合并到模型中:我会修改模型,使其具有一个指示实例处于活动或挂起状态的标志(您也可以添加deleted )。这可以由多个经理来补充。默认管理器可被修改为仅过滤活动对象,而第二管理器可仅获取未决对象。可以编写一个作业来处理挂起了很长时间的对象。
否则(如果这是临时情况),您可以选择您喜欢的任何媒介来持久化挂起的对象。
https://stackoverflow.com/questions/6489458
复制相似问题