6

更新:增加了赏金。请提供一个例子,我会接受最好的答案

更新 2:现在包括显式示例

从同一个项目继续,我在一个单独的线程中询问了 bulk_create 。 我想知道是否有一种本质上“批量保存”的方法 - 如果不存在则插入,或者如果它已经存在则简单地更新。

例如:

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”没有简单的方法,批量更新也会有所帮助。

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

批量更新参考

4

1 回答 1

3

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

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

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

https://bitbucket.org/weholt/dse2

明天将更新速度测试。

于 2012-07-15T06:16:00.497 回答