2011-10-08 50 views
0

我处于这种情况,我必须通过基于外键的ajax调用将多个记录插入到Postgre数据库中。插入多行的最快最干净的方法django

目前,我为每条记录使用db1.db2_set.create(...),循环播放字典列表。

这是最好的方法吗?看来我正在为每个插入命中数据库。

+0

http://stackoverflow.com/questions/4294088/accelerate-bulk-insert-using-djangos-orm –

+0

在调用'.save'之前,您不会碰到数据库。你是在循环中做这件事,还是可以等到循环完成?如果您可以等待,Django将在单个事务中更新数据库。 –

+0

实际上创建没有命中数据库,我不需要调用'.save()'来让它提交到数据库 –

回答

0

我敢肯定,当你调用save()方法时,django将查询数据库。所以如果你做类似的事情:

for i in objects: 
    db1.db2_set.create(i) 

db1.save() 

它可能只访问一次数据库。但是,这可能是有用的: http://djangosnippets.org/snippets/766/

这是一个中间件,您可以添加查看您的django应用程序在您访问的每个页面中使用多少个查询。

相关问题