django bulk создать игнорировать дубликаты

Я пытаюсь вставить массив в MySQL db для очень большого набора данных и очень хотел бы использовать bulk_create django для bulk_create , игнорируя повторяющиеся ошибки.

Модель образца:

 class MyModel(models.Model): my_id=models.IntegerField(primary_key=True) start_time = models.DateTimeField() duration = models.IntegerField() ...... description = models.CharField(max_length=250) 

до сих пор у меня есть следующий код (общий для всех моих моделей, я передаю Model_instance () и [список объектов bulk_create]):

 def insert_many(model, my_objects): # list of ids where pk is unique in_db_ids = model.__class__.objects.values_list(model.__class__._meta.pk.name) if not in_db_ids: # nothing exists, save time and bulk_create model.__class__.objects.bulk_create(my_objects) else: in_db_ids_list = [elem[0] for elem in in_db_ids] to_insert=[] for elem in my_objects: if not elem.pk in in_db_ids_list: to_insert.append(elem) if to_insert: model.__class__.objects.bulk_create(to_insert) 

Есть ли способ в джанго сделать это, чтобы избежать дубликатов? имитировать insert ignore MySQL MySQL было бы здорово. Если я просто использую bulk_create (очень быстро), я получаю сообщение об ошибке, если есть дубликат первичного ключа и остановка вставки.

One Solution collect form web for “django bulk создать игнорировать дубликаты”

Разве это невозможно? Я не уверен, правильно ли я использовал разреженный список, но я понял, что он позволяет ссылаться на список, который обрабатывается в цикле.

 def insert_many(model, my_objects): # list of ids where pk is unique in_db_ids = model.__class__.objects.values_list(model.__class__._meta.pk.name) if not in_db_ids: # nothing exists, save time and bulk_create model.__class__.objects.bulk_create(my_objects) else: in_db_ids_list = [elem[0] for elem in in_db_ids] to_insert=[] for elem in my_objects: if not elem.pk in in_db_ids_list and not elem.pk in to_insert[:]: to_insert[:].append(elem) if to_insert: model.__class__.objects.bulk_create(to_insert) 
  • кортеж кортежей dict из базы данных mysql
  • Как переместить модель между двумя приложениями Django (Django 1.7)
  • Этот сеанс на основе потока Flask-SQLAchemy вызывает ошибку «сервер MySQL ушел»?
  • Невозможно импортировать MySQLdb - python - Windows 8.1
  • Python: индексы кортежей должны быть целыми, а не str при выборе из таблицы mysql
  • Python3 + MySql: Ошибка при загрузке модуля MySQLdb: нет модуля с именем 'MySQLdb'
  • выполнить * .sql файл с помощью python MySQLdb
  • Ошибка с MySQLdb на OS X El Capitan
  •  
    Interesting Posts for Van-Lav

    IPython Notebook – python3 не найден после удаления Anaconda3 для Anaconda

    Python сокет-сервер / клиентское программирование

    Как справиться с производительностью создания подписанных URL-адресов для доступа к частному контенту через CloudFront?

    Как вызывать pyspark в режиме отладки?

    Скриншот Python windows 7 без PIL

    Создание словаря для каждого слова в файле и подсчет частоты последующих слов

    Seaborn, показывающий научную нотацию в тепловой карте для трехзначных чисел

    Скрипт, чтобы найти все сетевые адаптеры, с которыми я подключен, в Python

    Scipy Leastsq Дополнительная переменная вывода (Mesg)

    В чем разница между Image.resize и Image.thumbnail в Pillow-Python

    Пересечение двухлинейных стержней Geopandas

    Как получить новейший каталог в Python

    Как эффективно фильтровать строку в длинном списке слов в Python / Django?

    Проверка того, является ли объект на FTP-сервере файлом или каталогом с помощью Python и ftplib

    Чтение в режиме реального времени вывода терминала с сервера

    Python - лучший язык программирования в мире.