Skip to main content
 首页 » 编程设计

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

2025年04月02日34hnrainll

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

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_update 更新许多记录:

user_bulk.append(user_sequence) 
        if len(user_bulk) == settings.BULK_LIMIT: 
            bulk_update(user_bulk) 
            user_bulk[:] = [] 

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

谢谢,

请您参考如下方法:

我认为这是不可能的。 This答案可能会让您有所了解。

我可能会建议一个远非完美的解决方法:手动将 new_users_bulk_list 分成一定大小的批处理。这至少可以让您在一定程度上控制正在发生的事情和失败的事情。