sql >> Base de Datos >  >> RDS >> PostgreSQL

Django bulk_create con ignorar filas que causan IntegrityError?

Esto ahora es posible en Django 2.2

Django 2.2 agrega un nuevo ignore_conflicts opción a bulk_create método, de la documentación:

En las bases de datos que lo admiten (todas excepto PostgreSQL <9.5 y Oracle), establecer el parámetro ignore_conflicts en True le dice a la base de datos que ignore la falla al insertar cualquier fila que no cumpla con las restricciones, como valores únicos duplicados. Habilitar este parámetro deshabilita la configuración de la clave principal en cada instancia del modelo (si la base de datos normalmente lo admite).

Ejemplo:

Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
], ignore_conflicts=True)