Django“bulk_save”和“bulk_update”

时间:2012-07-10 05:51:29

标签: database django django-orm

更新:添加了一个BOUNTY。请提供一个示例,我将接受最好的答案

更新2:现在包含明确示例

Carrying on from the same project, where I asked about bulk_create in a separate thread. 我想知道是否有一种基本上“bulk_save”的方法 - 如果不存在则插入或只是更新它是否已经存在。

例如:

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    height = models.DecimalField(blank=True, null=True)
    weight = models.DecimalField(blank=True, null=True)

我有一个字典列表,其中包含这些字段的键值对。我想按名称过滤,然后更新身高和/或体重,因为这些我的球员仍在成长和调节。如果“bulk_save”没有简单的方法,批量更新也会有所帮助。

Reference: June 8, 2012 - "get_or_create()" patch at django project

Bulk_update reference

1 个答案:

答案 0 :(得分:3)

我刚刚对下面列出的update_many函数做了一个变化,我似乎已经极大地提高了速度。

http://people.iola.dk/olau/python/bulkops.py

更新 - 显然DSE2也是一种选择。

https://bitbucket.org/weholt/dse2

明天会更新速度测试。