在bulk_create Django中捕获特定的失败记录

时间:2016-11-14 10:44:21

标签: python django sqlite bulk bulkupdate

我正在使用bulk_create插入一千个用户:

<script>
function randomString() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
    var string_length = 8;
    var randomstring = '';
    for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
    }
    document.randform.randomfield.value = randomstring;
}
</script>

和bulk_update更新许多记录:

new_users_bulk_list.append(User(user_id=user_id, date_of_birth=dob))
    if len(new_users_bulk_list) >= settings.BULK_LIMIT:
        try:
            User.objects.bulk_create(new_users_bulk_list)
            new_users_bulk_list[:] = []
        except Exception as e:
            print("Error: Creating users " + str(e))

如果bulk_create或bulk_update在创建/更新记录时失败,我该如何识别这些失败的记录?有没有办法捕获特定的失败记录?

谢谢,

1 个答案:

答案 0 :(得分:1)

我认为不可能这样做。 This回答可能会给你一些见解。

我可能建议采用一种远非完美的解决方法:手动将new_users_bulk_list拆分成一些大小的批次。这至少可以让你对正在发生的事情和失败的事情有一定程度的控制。

相关问题