Skip to main content

Tracking dirty fields on a Django model instance.

Project description

Join the chat at https://gitter.im/romgar/django-dirtyfields Published PyPI version Github Actions Test status Coveralls code coverage status Read the Docs documentation status

Tracking dirty fields on a Django model instance. Dirty means that field in-memory and database values are different.

This package is compatible and tested with the following Python & Django versions:

Django

Python

2.2, 3.0, 3.1

3.8, 3.9

3.2, 4.0

3.8, 3.9, 3.10

4.1

3.8, 3.9, 3.10, 3.11

4.2

3.8, 3.9, 3.10, 3.11, 3.12

5.0

3.10, 3.11, 3.12

Install

$ pip install django-dirtyfields

Usage

To use django-dirtyfields, you need to:

  • Inherit from DirtyFieldsMixin in the Django model you want to track.

from django.db import models
from dirtyfields import DirtyFieldsMixin

class ExampleModel(DirtyFieldsMixin, models.Model):
    """A simple example model to test dirty fields mixin with"""
    boolean = models.BooleanField(default=True)
    characters = models.CharField(blank=True, max_length=80)
  • Use one of these 2 functions on a model instance to know if this instance is dirty, and get the dirty fields:

    • is_dirty()

    • get_dirty_fields()

Example

>>> model = ExampleModel.objects.create(boolean=True,characters="first value")
>>> model.is_dirty()
False
>>> model.get_dirty_fields()
{}

>>> model.boolean = False
>>> model.characters = "second value"

>>> model.is_dirty()
True
>>> model.get_dirty_fields()
{'boolean': True, "characters": "first_value"}

Consult the full documentation for more information.

Project details


Download files

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

Source Distribution

django-dirtyfields-1.9.3.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

django_dirtyfields-1.9.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file django-dirtyfields-1.9.3.tar.gz.

File metadata

  • Download URL: django-dirtyfields-1.9.3.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for django-dirtyfields-1.9.3.tar.gz
Algorithm Hash digest
SHA256 c0ac06cd152f44bdc65f39e4b8e04ec0df2c54882e3726fc713b57da7d05f2ad
MD5 b908f5256f9d3685562b583408a6a70f
BLAKE2b-256 74dba4e8685b0f0ac6df89141bbd64e6959f2b90a0f2943675b3082b798212ea

See more details on using hashes here.

Provenance

File details

Details for the file django_dirtyfields-1.9.3-py3-none-any.whl.

File metadata

File hashes

Hashes for django_dirtyfields-1.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 efeeb49c5b36a982eb44e0aa03a9e4619ad0b48da36c9101cdca8175f5e416ed
MD5 7de98b493e6f56ba4f10f84700eb800a
BLAKE2b-256 91972b8beefe1a41aa25912079f0f91754983b35615287a7e3ddd8c18d5624ea

See more details on using hashes here.

Provenance

Supported by

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