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

1.11, 2.0, 2.1

3.7

2.2, 3.0, 3.1

3.7, 3.8, 3.9

3.2

3.7, 3.8, 3.9, 3.10

4.0

3.8, 3.9, 3.10

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 ModelTest(DirtyFieldsMixin, models.Model):
        """A simple test 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

>>> from tests.models import ModelTest
>>> tm = ModelTest.objects.create(boolean=True,characters="testing")
>>> tm.is_dirty()
False
>>> tm.get_dirty_fields()
{}

>>> tm.boolean = False

>>> tm.is_dirty()
True
>>> tm.get_dirty_fields()
{'boolean': True}

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.8.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

django_dirtyfields-1.8.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django-dirtyfields-1.8.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for django-dirtyfields-1.8.0.tar.gz
Algorithm Hash digest
SHA256 2f9488504d18c70acf19c59045d5514711beaaaf8cc84ded136a79910778d6ba
MD5 f503061ccca3375da07d8d62d9d8b034
BLAKE2b-256 b695544e799393730dfedfe35cfd1251bc64a505c21dfdb9573867c9100186a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_dirtyfields-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

File hashes

Hashes for django_dirtyfields-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84750ad11b6555100c0cd60057a9317c1f078dde3f65d51d0867e11894fb25a2
MD5 ec83a5c4fc1f0a7a466b7cfe119c0632
BLAKE2b-256 a5037b388c24280faa558ecebee810c4d1d1020920b9adddb2d1d13571735e9d

See more details on using hashes here.

Supported by

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