Skip to main content

Custom Django signals for update, bulk update/create operations with field tracking

Project description

django-bulk-signals

Custom signal support for Django bulk operations — with granular field-level diffing.

This library extends Django's signal framework to support bulk_create, bulk_update, and queryset update() operations. It also helps detect exactly which fields changed in each object.


✨ Features

  • pre_bulk_create, post_bulk_create signals
  • pre_bulk_update, post_bulk_update signals
  • pre_update for regular .update() calls
  • Field-level change tracking during bulk operations
  • Decorators for easy multi-signal binding
  • Drop-in replacement for your model Manager or QuerySet

🚀 Installation

pip install django-bulk-signals

🧠 Usage

  1. Use the custom manager:
from django_bulk_signals.managers import CustomManager
from django.db import models

class Customer(models.Model):
    ...
    objects = CustomManager()
  1. Connect to signals:
from django.dispatch import receiver
from django_bulk_signals.signals import pre_bulk_update

@receiver(pre_bulk_update, sender=Customer)
def customer_bulk_update_handler(sender, **kwargs):
    forward_data = kwargs.get("forward_data")
    print("Changed fields:", forward_data)
  1. Signal Reference | Signal | Description | | ------------------ | ---------------------- | | pre_update | Before .update() | | pre_bulk_update | Before bulk_update() | | post_bulk_update | After bulk_update() | | pre_bulk_create | Before bulk_create() | | post_bulk_create | After bulk_create() |

🛠️ Tools Decorator

from django_bulk_signals.decorators import apply_signals

@apply_signals(Customer, pre_bulk_update, pre_update)
def handler(sender, **kwargs):
    ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_advanced_bulk_signals-0.1.0-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file django_advanced_bulk_signals-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_advanced_bulk_signals-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63073d2993d2e2de849fad780983742b0aaea58eee617624f9c2795af8ce8ef8
MD5 b5ee43589b8c778aa1f37a7b0383e585
BLAKE2b-256 6d3203693a0aed6706e1e9409ff35c4cdf0ce72baf1b4ab8e4171a9203d8328b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page