Django"bulk_save"和"bulk_update"

sna*_*ies 6 database django django-orm

更新:添加了一个BOUNTY.请提供一个例子,我将接受最好的答复

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

从同一个项目继续,我在一个单独的线程中询问了bulk_create. 我想知道是否有一种基本上"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)
Run Code Online (Sandbox Code Playgroud)

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

参考:2012年6月8日 - django项目的"get_or_create()"补丁

Bulk_update参考

sna*_*ies 3

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

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

更新 - 显然 DSE2 也是一个选项。

https://bitbucket.org/weholt/dse2

明天将更新速度测试。