Skip to main content

django-ondelta

A django model mixin that makes it easy to react to field value changes on models. Supports an API similar to the model clean method.

Quick Start

Given that I have the model

class MyModel(models.Model):

mai_field = models.CharField() other_field = models.BooleanField()

And I want to be notified when mai_field’s value is changed and persisted I would simply need to modify my model to include a ondelta_mai_field method.

from ondelta.models import OnDeltaMixin

class MyModel(OnDeltaMixin):

mai_field = models.CharField() other_field = models.BooleanField()

def ondelta_mai_field(self, old_value, new_value):

print(“mai field had the value of {}”.format(old_value)) print(“but after we called save it had the value of {}”.format(new_value))

This is the easiest method to watch a single field for changes, but what if we want to perform an action that has an aggregate view of all of the fields that were changed? OnDeltaMixin provides an ondelta_all method for these cases; it is only called once for each save.

from ondelta.models import OnDeltaMixin

class MyModel(OnDeltaMixin):

mai_field = models.CharField() other_field = models.BooleanField()

ondelta_all(self, fields_changed):
if ‘mai_field’ in fields_changed and ‘other_field’ in fields_changed:

print(“Both fields changed during this save!”)

Unsupported Field Types

Some field types are not supported: ManyToManyField, reverse ManyToManyField, reverse ForeignKey, and reverse OneToOneField relations. If you create an ondelta_field_name method for one of these fields, it will not be called when that field is changed.

Help

I like to help people as much as possible who are using my libraries, the easiest way to get my attention is to tweet @adamhaney or open an issue. As long as I’m able I’ll help with any issues you have.

Release files for ondelta 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ondelta 0.6.0
File Size Uploaded
ondelta-0.6.0.tar.gz 3.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ondelta 0.6.0
File Interpreter ABI Platform
ondelta-0.6.0.macosx-10.11-intel.tar.gz Details

Total release size: 8.3 kB

Release files / ondelta-0.6.0.tar.gz

Download URL ondelta-0.6.0.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aba5307502afb16c9d0c166cef5aa5a7771b8130b147cd6b927802d0ddcb8c91
BLAKE2b-256 checksum
How to use checksums
521736603a69e523d351f593b6bdc917ff9a6553ce4b0d3a75e6fc4667a1c39d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / ondelta-0.6.0.macosx-10.11-intel.tar.gz

Download URL ondelta-0.6.0.macosx-10.11-intel.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ee0f7ceebaa0e37b0d6a6b12620bd43d8e518b18f5d36d3facb18c714588037
BLAKE2b-256 checksum
How to use checksums
38bcc6ed04b2e1c84717a9f0a7ed13a2a507a5d04a7d8cc89f789d8f843c0f40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

1 release file

0.3.0

1 release file

0.2.2

0.2.1

1 release file

0.2.0

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page