Как я могу использовать сигналы в django bulk create

У меня есть этот код

Task.objects.bulk_create(ces)

Теперь это мой сигнал

 @receiver(pre_save, sender=Task) def save_hours(sender, instance, *args, **kwargs): logger.debug('test') 

Теперь этот сигнал не запускается в массовом порядке

Я использую django 1.8

One Solution collect form web for “Как я могу использовать сигналы в django bulk create”

Как упоминалось, bulk_create не вызывает эти сигналы –

https://docs.djangoproject.com/en/1.8/ref/models/querysets/#bulk-create

Этот метод эффективно вставляет предоставленный список объектов в базу данных (как правило, только 1 запрос, независимо от количества объектов).

В этом есть ряд предостережений:

  • Метод save () модели не будет вызываться, а сигналы pre_save и post_save не будут отправлены.
  • Он не работает с дочерними моделями в сценарии наследования с несколькими таблицами.
  • Если основным ключом модели является AutoField, он не извлекает и не устанавливает атрибут первичного ключа, как это делает save ().
  • Он не работает с отношениями «многие ко многим».
  • Параметр batch_size определяет, сколько объектов создается в одном запросе. По умолчанию создается все объекты в одной партии, за исключением SQLite, где по умолчанию такое, что используется не более 999 переменных для каждого запроса.

Поэтому вы должны запускать их вручную. Если вы хотите, чтобы это для всех моделей, вы можете переопределить bulk_create и отправить их себе так:

 class CustomManager(models.Manager): def bulk_create(items,....): super().bulk_create(...) for i in items: [......] # code to send signal 

Затем используйте этот менеджер –

 class Task(models.Model): objects = CustomManager() .... 
  • Django, Logout_URL не перенаправляет хорошо
  • Django: запрос для получения User.usernames через внешний ключ
  • Google App Engine (Python) - фрагменты сайта - составной вид
  • NoReverseMatch в / сообщения / при использовании абсолютного URL-адреса в django
  • Наследование и постоянные ссылки на Django
  • асинхронный вызов SOAP api с использованием Python
  • Django: Не удается разрешить ключевое слово '' в поле. Возможные варианты:
  • Преобразование даты и времени UTC в локальную дату и время пользователя
  •  
    Interesting Posts for Van-Lav

    Python: Unicode и ElementTree.parse

    Устанавливается против производительности frozenset

    Как обрабатывать unique_ptr с помощью SWIG

    Как передать большие массивы numpy между подпроцессами python без сохранения на диск?

    Несколько моделей в Django Rest Framework?

    Разбор WKT-файла

    размерность

    совместное использование: memory: database между различными потоками в python с использованием пакета sqlite3

    Как получить неблокирующий / режим реального времени из модуля протоколирования Python? (вывод в PyQt QTextBrowser)

    Каковы некоторые стратегии для поддержания общей схемы базы данных с командой разработчиков и без администратора баз данных?

    Есть ли более элегантный питонический способ выражения следующего выражения условности?

    Как получить Github Webhooks в Python

    Python Удаление нелатинских символов

    Flask-SQLAlchemy Запрос многих-ко-многим

    Как получить предварительно встроенную * debug * версию библиотеки Python (например, Python27_d.dll) для Windows

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